借助springboot自动化配置原理,完成bean的自动化配置(直接将这个bean交给spring管理)
1.定于目标类(SmsTemplate)
2.定义一个配置类,在这个配置类中声明一个bean(方法,注解@Bean)
3.在该项目的META-INF/spring.factories文件中加入如下配置:
org.springframework.boot.autoconfigure.EnableAutoConfiguration=配置类全类名
4.在其他模块中去依赖定义目标类的模块
SpringBoot自动化配置原理
重点: @EnableAutoConfiguration
自动化配置原理是通过一个注解:@EnableAutoConfiguration这个注解进行实现的,这个注解是对@Import进行了封装,@Import注解中导入了一个导入器,通过这个导入器可以读取spring boot项目中的MATE-INF/spring.factories文件中的要被导入的配置类的全类名。
但是如果spring没有添加任何的附加条件,此时这些配置类中所定义的bean都会被导入到spring容器中,这样非常消耗内存,因此在spring中提供了很多的条件注解,通过这些条件注解控制某一个配置是否生效。在我的项目中也使用到了spring boot的自动化配置原理,定义了很多的starter,比如:发送短信starter 、阿里云oss的starter。