文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

搭建脚手架的一些经验,你学到了吗?

2024-12-01 18:32

关注

使用统一的依赖管理

这种方式是基于我多年来的实践。最开始我也将项目类库及其版本随意的管理,大部分情况下它们能够正常的工作,遇到版本升级和依赖冲突就很头疼。于是模仿一些知名开源的依赖的管理,定制自己的BOM,就像这样:

<dependencyManagement> 
<dependencies>
<dependency>
<groupId>cn.felord.groupId>
<artifactId>my-bomartifactId>
<version>1.0version>
<type>pomtype>
<scope>importscope>
dependency>
dependencies>
dependencyManagement>

这样你的依赖管理将非常清晰, 在升级第三方依赖或者增减依赖的时候,只需要升级这个依赖的版本即可。

约定大于配置

众所周知Spring Boot的一个重要的特点就是约定大于配置。但是我在一些开源脚手架和一些项目中看到的却不是延续这一思想,用了大量的代码实现了一些可有可无的自定义配置。比如我在某个项目的Spring Security依赖中看到,自定义了所有的默认配置,将简单的问题复杂化却收效甚微,默认提供的PasswordEncoder不好用吗?能复用就复用,用最少的配置解决问题。

MVC分工应该专注和简洁

控制器

关于控制器,也就是Controller,它更多的角色应该是一个协调者和委托者,而不承担具体业务逻辑的执行工作。控制器应该专注于HTTP层面的功能,比如参数的绑定处理,序列化和反序列化,具体的业务委托给下游的服务层。

还有一个点就是接口的命名风格要一致,还要有层次感和语义化。比如/api/user/{id}、/api/order/{id}、/api/order/user/{id}。

服务层

服务层我遇到的问题就是出口分散问题,很多同学订单的出口可能根据某些原因分散在其它的服务层接口,而不是集中于OrderService中。大多数情况下,我觉得集中管理有利于后续的迭代维护,保证了各个Domain业务之间的相对独立性。

还有一点,同一个Spring容器下服务层之间的相互调用容易引起依赖循环问题,比如UseService要调用OrderService查询订单,而OrderService可能又依赖了UserService,最好的办法是服务层之间尽量不相互调用,去调用持久层的OrderMapper,当然一些功能性的接口服务例外,例如短信服务、三方接口这一类。

说到短信服务、三方接口,这一类稳定的业务功能建议作为类库集成,既方便管理又可重用。

工具类

Spring内部的工具类和apache common包的工具类已经足够应付大部分情况,如果真的不满足再考虑去写工具类,工具类解决的一定是局部问题,不要把业务功能相关的东西封装成工具类。

来源:码农小胖哥内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯