失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > springboot 扫描文件夹_Spring Boot学习07_自定义starter

springboot 扫描文件夹_Spring Boot学习07_自定义starter

时间:2021-04-19 15:30:57

相关推荐

springboot 扫描文件夹_Spring Boot学习07_自定义starter

查看Spring Boot的源码,starter包并没有真正的代码,代码都在autoconfigurer包中,所以我也可以照葫芦画瓢,创建一个starter项目和一个autoconfigurer项目,在autoconfigurer项目中写自动配置类,在starter项目中依赖autoconfigurer项目,到时候别人用就直接引入starter的坐标就能使用我自定义的starter了

Mybatis的starter与autoconfigurer也是自己写的,所以我们的命名方式可以根据它这样来定义为ahead-spring-boot-starter,ahead-spring-boot-starter-autoconfigurer

1、创建一个普通的maven工程,打包方式为jar,名称为ahead-spring-boot-starter

2、创建一个Spring boot应用,命名为ahead-spring-boot-starter-autoconfigurer,不需要添加任何组件,只保留默认的spring-boot-starter依赖就行,删除自带的maven插件,最终的pom文件如下

3、编写自定义的starter

我在前面就写过SpringBoot的配置原理,通过全局配置文件中的值与xxxProperties属性映射并添加到组件中去,在配置类中就能获取到xxxProperties对象并获取其中的属性值设置给某些组件的属性,最后在classpath路径下的META-INF文件夹下的spring.factories文件中指定需要自动配置的类,就会被SpringBoot读取到,达到了自动配置的效果

3.1、创建HelloProperties类并指定与全局配置文件中的那个下面的属性进行映射

3.2、编写HelloService组件

3.3、编写HelloAutoConfiguration自动配置类,并注册HelloService组件

3.4、在classpath下的META-INF文件夹下的spring.factories文件指定要自动配置的类(之前用@Configuration注解标注的配置类因为在Spring Boot主配置类的扫描范围内,而这里的扫描不到,就需要在文件中指定自动配置类的位置,这样Spring Boot就能获取到)

3.5、在starter项目中引入autoconfigurer项目的坐标,并通过maven命令先打包

ahead-spring-boot-starter-autoconfigurer项目在打包ahead-spring-boot-starter项目

4、编写一个Spring Boot应用进行测试

4.1、引入自定义的starter

4.2、在全局配置文件中指定HelloProperties中的name属性值

4.3、编写HelloController并启动应用通过浏览器访问测试。

4.4、自动配置成功

如果觉得《springboot 扫描文件夹_Spring Boot学习07_自定义starter》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。