最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

springboot自定義Starter過程解析

 更新時間:2019年09月07日 08:51:25   作者:技術(shù)-劉騰飛  
這篇文章主要介紹了springboot自定義Starter過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

自定義Starter命名規(guī)則

注意artifactId的命名規(guī)則,Spring官方Starter通常命名為spring-boot-starter-{name}如 spring-boot-starter-web, Spring官方建議非官方Starter命名應(yīng)遵循{name}-spring-boot-starter的格式, 如mybatis-spring-boot-starter。這里創(chuàng)建的項目的artifactId為helloworld-spring-boot-starter

開發(fā)Starter步驟

  • 創(chuàng)建Starter項目
  • 定義Starter需要的配置(Properties)類
  • 編寫自動配置類
  • 編寫spring.factories文件加載自動配置類
  • 編寫配置提示文件spring-configuration-metadata.json(不是必須的)

具體流程

創(chuàng)建配置類

@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的加載規(guī)則
    • value 指的是Properties的哪個字段
    • havingValue指的是配置value是什么值的時候加載Configuration
    • matchIfMissing 指的是當(dāng)value配置的字段沒有配置時的默認(rèn)值
  • @Bean 配置自動注入的bean
  • springboot特有的常見的條件依賴注解有:
    • @ConditionalOnBean,僅在當(dāng)前上下文中存在某個bean時,才會實例化這個Bean。
    • @ConditionalOnClass,某個class位于類路徑上,才會實例化這個Bean。
    • @ConditionalOnExpression,當(dāng)表達(dá)式為true的時候,才會實例化這個Bean。
    • @ConditionalOnMissingBean,僅在當(dāng)前上下文中不存在某個bean時,才會實例化這個Bean。
    • @ConditionalOnMissingClass,某個class在類路徑上不存在的時候,才會實例化這個Bean。
    • @ConditionalOnNotWebApplication,不是web應(yīng)用時才會實例化這個Bean。
    • @AutoConfigureAfter,在某個bean完成自動配置后實例化這個bean。
    • @AutoConfigureBefore,在某個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.factories文件

Spring Boot會默認(rèn)掃描跟啟動類平級的包,如果我們的Starter跟啟動類不在同一個主包下,需要通過配置spring.factories文件來生效

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.ai.base.boot.influxdb.InfluxdbAutoConfiguration

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 超全MyBatis動態(tài)代理詳解(絕對干貨)

    超全MyBatis動態(tài)代理詳解(絕對干貨)

    這篇文章主要介紹了超全MyBatis動態(tài)代理詳解(絕對干貨),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Java序列化原理詳解

    Java序列化原理詳解

    這篇文章主要介紹了Java序列化原理詳解,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • Java使用Knife4j優(yōu)化Swagger接口文檔的操作步驟

    Java使用Knife4j優(yōu)化Swagger接口文檔的操作步驟

    在現(xiàn)代微服務(wù)開發(fā)中,接口文檔的質(zhì)量直接影響了前后端協(xié)作效率,Swagger 作為一個主流的接口文檔工具,雖然功能強(qiáng)大,但其默認(rèn)界面和部分功能在實際使用中略顯不足,而 Knife4j 的出現(xiàn)為我們提供了一種增強(qiáng)的選擇,本篇文章將詳細(xì)介紹如何在項目中集成和使用 Knife4j
    2024-12-12
  • springboot讀取自定義配置文件時出現(xiàn)亂碼解決方案

    springboot讀取自定義配置文件時出現(xiàn)亂碼解決方案

    這篇文章主要介紹了springboot讀取自定義配置文件時出現(xiàn)亂碼解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java中圖片轉(zhuǎn)換為Base64的示例及注意事項

    Java中圖片轉(zhuǎn)換為Base64的示例及注意事項

    本文介紹了Base64編碼的概念及其作用,同時列舉了在實現(xiàn)圖片轉(zhuǎn)換為Base64過程中需要注意的問題,包括文件大小、讀取異常、圖片格式、網(wǎng)絡(luò)傳輸效率以及數(shù)據(jù)安全性等,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Java數(shù)據(jù)導(dǎo)入功能之讀取Excel文件實例

    Java數(shù)據(jù)導(dǎo)入功能之讀取Excel文件實例

    這篇文章主要介紹了Java數(shù)據(jù)導(dǎo)入功能之讀取Excel文件實例,本文給出了jar包的下載地址以及讀取Excel文件的代碼實例,需要的朋友可以參考下
    2015-06-06
  • Java中Arrays數(shù)組工具類的基本使用詳解

    Java中Arrays數(shù)組工具類的基本使用詳解

    Arrays類中的方法都是static修飾的靜態(tài)方法,在使用的時候可以直接使用類名進(jìn)行調(diào)用,而"不用"使用對象來調(diào)用(注意:是"不用"?而不是?"不能"),這篇文章主要給大家介紹了關(guān)于Java中Arrays數(shù)組工具類的基本使用,需要的朋友可以參考下
    2021-12-12
  • Struts2 漏洞分析及如何提前預(yù)防

    Struts2 漏洞分析及如何提前預(yù)防

    2016年4月26日,Struts2發(fā)布一份安全公告,CVE編號 CVE-2016-3081。這是自2012年Struts2命令執(zhí)行漏洞大規(guī)模爆發(fā)之后,該服務(wù)時隔四年再次爆發(fā)大規(guī)模漏洞。該漏洞也是今年目前爆出的最嚴(yán)重安全漏洞。本文分析了漏洞的原理危害影響防護(hù)等內(nèi)容。
    2016-05-05
  • Java發(fā)送https請求代碼實例

    Java發(fā)送https請求代碼實例

    這篇文章主要介紹了Java發(fā)送https請求代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 解決定時任務(wù)@Scheduled沒有準(zhǔn)時執(zhí)行的原因及分析

    解決定時任務(wù)@Scheduled沒有準(zhǔn)時執(zhí)行的原因及分析

    這篇文章主要介紹了解決定時任務(wù)@Scheduled沒有準(zhǔn)時執(zhí)行的原因及分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04

最新評論

陕西省| 藁城市| 年辖:市辖区| 鄂伦春自治旗| 乐至县| 余庆县| 桃园县| 抚远县| 平度市| 周口市| 孟州市| 山东| 如皋市| 莱阳市| 建瓯市| 沾化县| 波密县| 永仁县| 永济市| 鄂托克前旗| 清水河县| 威宁| 福海县| 阳山县| 灵璧县| 塔河县| 纳雍县| 富蕴县| 威远县| 汽车| 堆龙德庆县| 宜阳县| 恩施市| 淮阳县| 丹阳市| 阜平县| 舒兰市| 大名县| 固镇县| 磴口县| 嘉义市|