怎麼在springboot自訂Starter
May 28, 2023 pm 03:25 PM
springboot
starter
自訂Starter命名規則
注意artifactId的命名規則,Spring官方Starter通常命名為spring-boot-starter-{name}如spring-boot-starter -web, Spring官方建議非官方Starter命名應遵循{name}-spring-boot-starter的格式, 如mybatis-spring-boot-starter。這裡建立的專案的artifactId為helloworld-spring-boot-starter
#開發Starter步驟
- #建立Starter項目
- 定義Starter需要的設定(Properties)類別
- #編寫自動配置類別 ##編寫spring.factories檔案載入自動配置類別
- 編寫設定提示檔spring-configuration-metadata.json(不是必須的)
建立配置類別
@ConfigurationProperties 來定義配置的前綴
@EnableConfigurationProperties(InfluxdbProperties.class) @ConfigurationProperties(prefix = "spring.influxdb") public class InfluxdbProperties { private String username; public String getDatabase() { return database; } public void setDatabase(String database) { this.database = database; } }
登入後複製
編寫自動配置類別
- @EnableConfigurationProperties配置依賴的屬性類別
- @ConditionalOnProperty 設定Configuration的載入規則
- havingValue指的是設定value是什麼值的時候載入Configuration
- matchIfMissing 指的是當value配置的欄位沒有配置時的預設值
- springboot特有的常見的條件依賴註解有:
- @ConditionalOnClass,某個class位於類別路徑上,才會實例化這個Bean。
- @ConditionalOnExpression,當表達式為true的時候,才會實例化這個Bean。
- @ConditionalOnMissingBean,只有在目前上下文中不存在某個bean時,才會實例化這個Bean。
- @ConditionalOnMissingClass,某個class在類別路徑上不存在的時候,才會實例化這個Bean。
- @ConditionalOnNotWebApplication,不是web應用程式時才會實例化這個Bean。
- @AutoConfigureAfter,在某個bean完成自動設定後實例化這個bean。
- @AutoConfigureBefore,在某個bean完成自動設定前實例化這個bean。
- #value 指的是Properties的哪個欄位
- @ConditionalOnBean,只有當目前上下文中存在某個bean時,才會實例化這個Bean。
@Configuration @Order(1) @EnableConfigurationProperties(InfluxdbProperties.class) @ConditionalOnClass(InfluxdbProperties.class) @ConditionalOnProperty(prefix = "spring.influxdb", value = "use-influxdb", havingValue="true" ,matchIfMissing = false) public class InfluxdbAutoConfiguration { private String scanEntitySuffix = "Entity.class"; @Bean @ConditionalOnMissingBean(AiInfluxdbTemplate.class) @Order(Ordered.HIGHEST_PRECEDENCE) public AiInfluxdbTemplate AiInfluxdbTemplate(InfluxdbProperties influxdbProperties){ return new AiInfluxdbTemplate(influxdbProperties); } }
登入後複製
#Spring Boot會預設掃描跟啟動類別平級的包,如果我們的Starter跟啟動類不在同一個主套件下,需要透過設定spring.factories檔案來生效
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.ai.base.boot.influxdb.InfluxdbAutoConfiguration
登入後複製
以上是怎麼在springboot自訂Starter的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前
By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保護它?
3 週前
By DDD

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Springboot+Mybatis-plus不使用SQL語句進行多表新增怎麼實現
