理解自定義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

相關文章
相關標籤/搜索