第二章 springboot starter 最佳实践
资料:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-custom-starter
项目地址:https://gitee.com/vastmoon/sparrow
文档上的大概的意思是说当你有很多功能的时候建议将autoconfigure
和 starter
分开,如果功能单一的话你完全可以把它合并到一起。
这里我们来设计一个企业级的父工程,来作为企业中基础脚手架框架,他提供所有的jar包管理,这样做的好处是,集中式管理jar包,也就是自己做一个符合自己企业需求的springboot项目。
首先先看一下整体目录结构设计:
这里一些目录结构的说明上一篇文章已经说过, 这里只说明新增的地方。
buildSrc
这个主要是gradle 插件编写目录,这里引用了springboot里面提供的一些插件,如图
这样的话我们就可以像springboot一样来扩展gradle的 optinal 作用域
sparrow-spring-boot-autoconfigure
这个模块用来放企业自定义的自动配置的,这样的话我们就统一管理了企业中的所有自定义配置。
sparrow-spring-boot-starters
这个模块主要是为了方便我们引用自定义配置的,parrow-spring-boot-autoconfigure
模块下的所有引用的jar包都是可选的,所以通过starter来控制需要的jar包,这样就和springboot的用法完全一致了,这样团队的学习成本,沟通成本就很低,开发人员感觉和用springboot没有任何区别。