starter作用:1概漱、引入相關(guān)的jar,相當于一個maven組移剪。2究珊、自動完成bean配置。
自動裝配原理:
1纵苛、配置Bean剿涮。@Configuration注解的類可以看作是能生產(chǎn)讓Spring IoC容器管理的Bean實例的工廠。 一個帶有@Bean的注解方法將返回一個對象攻人,該對象應(yīng)該被注冊到spring容器中取试。這兩個注解一起使用就可以創(chuàng)建一個基于java代碼的配置類,可以用來替代相應(yīng)的xml配置文件怀吻。
2瞬浓、設(shè)置自動配置條件依賴
@ConditionalOnBean,僅在當前上下文中存在某個bean時烙博,才會實例化這個Bean瑟蜈。@ConditionalOnClass烟逊,某個class位于類路徑上,才會實例化這個Bean铺根。@ConditionalOnExpression宪躯,當表達式為true的時候,才會實例化這個Bean位迂。@ConditionalOnMissingBean访雪,僅在當前上下文中不存在某個bean時,才會實例化這個Bean掂林。@ConditionalOnMissingClass臣缀,某個class在類路徑上不存在的時候,才會實例化這個Bean泻帮。@ConditionalOnNotWebApplication精置,不是web應(yīng)用時才會實例化這個Bean。@AutoConfigureAfter锣杂,在某個bean完成自動配置后實例化這個bean脂倦。@AutoConfigureBefore,在某個bean完成自動配置前實例化這個bean元莫。
3赖阻、讀取配置文件轉(zhuǎn)化為Bean。@ConfigurationProperties指定了配置文件的前綴踱蠢,把yml或者properties配置文件轉(zhuǎn)化為bean火欧。@EnableConfigurationProperties使@ConfigurationProperties注解生效
4茎截、Bean的發(fā)現(xiàn)和加載苇侵。@ComponentScan自動掃描并加載符合條件的組件,@EnableAutoConfiguration 借助@Import的支持稼虎,收集和注冊依賴包中相關(guān)的bean定義衅檀。@Import使用了AutoConfigurationImportSelector從所有的jar包中讀取META-INF/spring.factories文件信息