自定义 SpringBootStarter
1. Overview
spring 官方本身为开发者提供了很多的 starter, 以至于使得开发者省去了各种繁琐的配置. 只需要在 pom 中添加相应的模块即可完成添加依赖.
通过自定义starter 也可以把我们自己常用的依赖整合起来. 通过一次引入 starter 解决问题.
2. Spring Boot's 自动配置
2.1 自动配置类
当 Spring Boot 项目启动的时候, 它会首先在目录 .ETA-INF 下寻找 spring.factories文件.
文件中的这些路径表示不同配置类. 这些配置类在spring boot 运行时会去执行他们.
2.2 在application.properties 中配置自定义属性
spring boot在初始化beans时会使用到一些属性的默认值,为了覆盖默认值, 可以通过在 application.properties 中使用约定好的方式声明覆盖值.
一切从假如开始, 假如我们现在搞微服务开发, 不同服务之间会发生调度, 这时调用方和被调用方就会面临着定义相同 Model 需求, 比如: 服务 A 提供了一个接口用于返回 User 对象, 那么服务 B 调用服务 A 的时候同样也需要定义一个 User 对象. 这个问题的解决方案有很多, 这里为了了解 Starter , 所以强行使用了这么个东西.
3. 创建自定义 starter
创建自定义 starter 基本两个主要部分
自动配置类
添加 pom依赖
3.1 自动配置类
属性注入类
bean自动配置类
spring.factories 文件定义
3.2 pom 定义
主要依赖:
note:
在pom文件中引入新创建的starter依赖,提示 Cannot resolve symbol 'packageName'
解决办法:
删除:
安装依赖: mvn:install 安装到本地
4. 测试
4.1 pom 中添加依赖
4.2 使用
配置属性
4.3 输出:
总结
大致步骤如下:
创建自动配置类
添加 spring.factories 文件, 并指向自动配置类
打包即可.
版权声明: 本文为 InfoQ 作者【lee】的原创文章。
原文链接:【http://xie.infoq.cn/article/a09f28c339cca5341c790f184】。文章转载请联系作者。
评论