自定義Spring Boot Starter
在使用Spring Boot開發的時候,我們會用到各種各樣的Spring-boot-Starter,不過那些Starter都是常用的,在不同的公司,因不同的業務場景,內部的庫也不同,有時需要做一個自己的starter,方便後面加快開發速度。
知識點
- @ConfigurationProperties starter的配置屬性
- @EnableConfigurationProperties 啟用配置屬性
- spring.factories 可以指定自動配置類
- spring-configuration-metadata.json 配置屬性的補全功能
過程
做一下演示,內部的程式碼不方便公開。
- 新建XXXProperties類,這個類名可以自定義,以Properties為結尾是為了方便標識這個類是Properties功能。
比如RedisProperties
我們新建TestProperties,這裡我省略了getter和setter,自己寫的時候加上
@Data
@ConfigurationProperties(prefix = "test")
public class TestProperties {
private String name;
private String desc;
private Nest nest;
public static class Nest {
private String nestName;
}
}
- 新建真正的配置類,類名為TestAutoConfigurer,這個根據自己的選擇,建合適的類名
參考Redis的
我們自己的
@Configuration
@EnableConfigurationProperties(TestProperties.class)
public class TestAutoConfigurer {
private TestProperties testProperties;
public TestAutoConfigurer(TestProperties testProperties) {
this.testProperties = testProperties;
}
...
}
-
建立好上面兩個類之後,根據業務建立,以及配置的屬性就可以建立Bean了。一般會用到@conditonalOnMissingBean(xxBean.class)
- 配置,執行並且測試
配置檔案裡面
test:
name: aihe
nest:
nestName: nestAihe
可以看到已經注入進來了。
- Spring Boot在啟動的時候會預設掃描當前包目錄下的所有內容,當前包下帶有Spring相關注解的都會生效。
假如我們的自動配置類,不在當前包下怎麼辦呢?
在resource目錄下新建這兩個檔案
- spring.factories指定自動配置類,這樣Spring Boot一定會啟用指定的配置類。
org.springframework.boot.autoconfigure.EnableAutoConfiguration=
me.aihe.ShiroCasAutoConfigurer
- spring-configuration-metadata.json用來做配置的時候自動補全的功能, 如圖所示的自動補全,spring-configuration-metadata.json這個檔案作用。
這個檔案主要分為兩部分,一個groups一個properties,其餘的因為是json格式,比較容易理解,自己寫就好了
- 都寫好之後,就可以打包測試,供下次使用了。最後的檔案結構如下
最後
主要介紹了下Spring Boot starter的簡單製作,感興趣的可以自己試試。
參考
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2041/viewspace-2806938/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自定義 Spring Boot StarterSpring Boot
- Spring Boot 自定義 starterSpring Boot
- 【spring-boot】自定義starterSpringboot
- (第五講)自定義Spring Boot StarterSpring Boot
- 小代學Spring Boot之自定義StarterSpring Boot
- Spring Boot四大神器之建立自定義StarterSpring Boot
- 最詳細的自定義Spring Boot Starter開發教程Spring Boot
- 快速開發一個自定義 Spring Boot Starter,並使用它Spring Boot
- 自定義spring boot starter三部曲之一:準備工作Spring Boot
- 自定義spring boot starter三部曲之二:實戰開發Spring Boot
- SpringBoot 自定義 starterSpring Boot
- SpringBoot自定義StarterSpring Boot
- spring-boot-starter-testSpringboot
- Spring Boot 自定義註解失效Spring Boot
- Spring Boot - 自定義 Banner 圖案Spring Boot
- 理解spring-boot-starter-parentSpringboot
- Spring Boot Starter 和 ABP ModuleSpring Boot
- 自研 Pulsar Starter:winfun-pulsar-spring-boot-starterSpringboot
- 聊聊arthas的spring-boot-starterSpringboot
- 開發一個Spring Boot Starter!Spring Boot
- 實戰|如何自定義SpringBoot Starter?Spring Boot
- Spring Boot之自定義JSON轉換器Spring BootJSON
- Spring Boot讀取自定義外部屬性Spring Boot
- Spring Boot 自動配置的原理、核心註解以及利用自動配置實現了自定義 Starter 元件Spring Boot元件
- 快速建立一個spring-boot-starterSpringboot
- spring-boot - 編寫自己的starterSpringboot
- 如何實現自己的Spring Boot StarterSpring Boot
- Jasypt工具類(jasypt-spring-boot-starter)Springboot
- spring-boot-starter的依賴項Springboot
- 禁用 Spring Boot 中引入安全元件 spring-boot-starter-security 的方法Spring Boot元件
- SpringBoot應用篇(一):自定義starterSpring Boot
- Spring Boot之Validation自定義實現總結Spring Boot
- spring boot學習(2): SpringApplication和自定義bannerSpring BootAPP
- spring boot學習(5): 程式exit code自定義Spring Boot
- 使用mica-auto生成Spring boot starter配置Spring Boot
- springboot 接入shardingsphere-jdbc-core-spring-boot-starterSpring BootJDBC
- (7)Spring Boot Starter的介紹及使用Spring Boot
- spring boot啟動掃描不到自定義註解Spring Boot