理解自定义starter的主要目的

自定义starter的主要功能是自动帮咱们将某个JavaBean转换成SpringBean,在这个过程当中,有些类的实例化会依赖其余的类,考虑到是否须要交给Spring管理,会有不少注解来辅助boot是不是实例化该对象。好比该图片中的@ConfigurationProperties注解就是将配置文件中前缀是sms的属性值匹配给当前类中属性名称一致的属性。java

下面图片中的@EnableConfigurationProperties注解就是当前类中的Bean的实例化须要依赖SmsProperties类的实例,而@ConditionalOnProperties的注解表示,当前bean只有在配置文件中存在对应的属性前缀而且value是sign-name的时候才会被实例化,matchIfMissing表示若是不存在改前缀的属性,默认条件不符合也就是不实例化。spring

上述配置好后就须要引用starter里面的东西了,两种是starter生效的方式:对象

一、图片

二、另外一种被动生效,在starter组件集成入Spring Boot应用时就已经被应用捕捉到。这里会用到相似java的SPI机制。在autoconfigure资源包下新建META-INF/spring.factories写入SmsAutoConfiguration全限定名。多个配置类逗号隔开,换行使用反斜杠。资源

大部分的starter是使用的第二种方式,因此在项目中若是有哪些类是直接能够依赖注入的或者是某些配置类直接生效的,请不要感受疑惑摸不着头脑,那是项目引用了对应的starterit

相关文章
相关标签/搜索