相信你一定也非常喜歡SpringBoot為我們提供的各種starter,因?yàn)镾pringBoot的本質(zhì)就是在原有框架的基礎(chǔ)之上為我們提供了各種自動(dòng)配置和加載這些自動(dòng)配置的程序而已台猴。有幸的是各大框架也都有自己的封裝好的单寂,比如MyBatis就有萨咳;現(xiàn)在我們來看看這些所謂的啟動(dòng)器怎么制作吧ヾ(≧O≦)〃嗷~
starter的制作
- 創(chuàng)建Maven項(xiàng)目shreker-web-spring-boot-starter來作為一個(gè)starter;
- 創(chuàng)建補(bǔ)引用任何jar的spring-boot項(xiàng)目shreker-web-spring-boot-autoconfigurer作為自動(dòng)配置的項(xiàng)目被辑;
- 在Maven項(xiàng)目shreker-web-spring-boot-starter的dependencies中引入項(xiàng)目shreker-web-spring-boot-autoconfigurer;
- 編寫各種組件:
- 編寫一個(gè)類QLWebProperties來綁定配置文件中的所有配置;修飾注解:
- @ConfigurationProperties(prefix="<config-prefix>")
- 在項(xiàng)目shreker-web-spring-boot-configurer中編寫一個(gè)類:QLWebConfigurer類巍沙,用來做一些配置,并引用QLWebProperties作為成員變量荷鼠;修飾注解:
- 編寫一個(gè)類QLWebAutoConfiguration用來做自動(dòng)配置句携,把QLWebProperties@Autowired到這個(gè)類中,并把Autowired進(jìn)來的QLWebProperties對象設(shè)置到QLWebConfigurer對象上允乐,并把shreker-web-spring-boot-configurer的QLWebConfigurer編寫方法@Bean注入到容器中矮嫉;修飾注解:
- @Configuration
- @ConditionalOnWebApplication
- @EnableConfigurationProperties(QLWebProperties.class)
- 編寫一個(gè)類QLWebProperties來綁定配置文件中的所有配置;修飾注解:
- 在Resources中創(chuàng)建文件:META-INF/spring.factories,在這個(gè)文件中配置:
# Auto Configure org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ QLWebAutoConfiguration # 全類名
- starter創(chuàng)建完成牍疏,這時(shí)候就可以在項(xiàng)目的其他地方引用了蠢笋,當(dāng)然,你需要先將這兩個(gè)項(xiàng)目安裝在倉庫中鳞陨,如果有精力可以提交到Maven倉庫挺尿;