欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot自定義Starter的具體流程

 更新時間:2019年09月03日 09:40:26   作者:技術-劉騰飛  
這篇文章主要介紹了springboot自定義Starter的具體流程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

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

注意artifactId的命名規(guī)則,Spring官方Starter通常命名為spring-boot-starter-{name}如 spring-boot-starter-web, Spring官方建議非官方Starter命名應遵循{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 指的是當value配置的字段沒有配置時的默認值
  • @Bean 配置自動注入的bean
  • springboot特有的常見的條件依賴注解有:
    • @ConditionalOnBean,僅在當前上下文中存在某個bean時,才會實例化這個Bean。
    • @ConditionalOnClass,某個class位于類路徑上,才會實例化這個Bean。
    • @ConditionalOnExpression,當表達式為true的時候,才會實例化這個Bean。
    • @ConditionalOnMissingBean,僅在當前上下文中不存在某個bean時,才會實例化這個Bean。
    • @ConditionalOnMissingClass,某個class在類路徑上不存在的時候,才會實例化這個Bean。
    • @ConditionalOnNotWebApplication,不是web應用時才會實例化這個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會默認掃描跟啟動類平級的包,如果我們的Starter跟啟動類不在同一個主包下,需要通過配置spring.factories文件來生效

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

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

相關文章

  • Struts2 OGNL表達式實例詳解

    Struts2 OGNL表達式實例詳解

    這篇文章主要介紹了Struts2 OGNL表達式實例詳解,相關實例代碼,需要的朋友可以參考。
    2017-09-09
  • java 刪除數(shù)組元素與刪除重復數(shù)組元素的代碼

    java 刪除數(shù)組元素與刪除重復數(shù)組元素的代碼

    在java中刪除數(shù)組元素與過濾重復數(shù)組元素我們都會需要去遍歷數(shù)組然后根據(jù)我們設置的值或方法進行去除數(shù)組
    2013-10-10
  • SpringBoot+Email發(fā)送郵件的實現(xiàn)示例

    SpringBoot+Email發(fā)送郵件的實現(xiàn)示例

    Spring?Boot提供了簡單而強大的郵件發(fā)送功能,本文主要介紹了SpringBoot+Email發(fā)送郵件的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03
  • 養(yǎng)成良好java代碼編碼規(guī)范

    養(yǎng)成良好java代碼編碼規(guī)范

    這篇文章主要介紹了如何養(yǎng)成良好java代碼編碼規(guī)范,規(guī)范需要平時編碼過程中注意,是一個慢慢養(yǎng)成的好習慣,下面小編就帶大家來一起詳細了解一下吧
    2019-06-06
  • java中volatile關鍵字的作用詳解

    java中volatile關鍵字的作用詳解

    這篇文章主要介紹了java中volatile關鍵字的作用詳解,volatile可以保證,若一個線程改變了某塊內(nèi)存的值,其他線程是可見的,以至于其他線程能及時更新這塊內(nèi)存,需要的朋友可以參考下
    2023-09-09
  • 如何通過RabbitMq實現(xiàn)動態(tài)定時任務詳解

    如何通過RabbitMq實現(xiàn)動態(tài)定時任務詳解

    工作中經(jīng)常會有定時任務的需求,常見的做法可以使用Timer、Quartz、Hangfire等組件,這次想嘗試下新的思路,使用RabbitMQ死信隊列的機制來實現(xiàn)定時任務,下面這篇文章主要給大家介紹了關于如何通過RabbitMq實現(xiàn)動態(tài)定時任務的相關資料,需要的朋友可以參考下
    2022-01-01
  • ServletContext讀取web資源_動力節(jié)點Java學院整理

    ServletContext讀取web資源_動力節(jié)點Java學院整理

    這篇文章主要介紹了ServletContext讀取web資源,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • Java實現(xiàn)提取圖片邊緣的示例代碼

    Java實現(xiàn)提取圖片邊緣的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Java實現(xiàn)提取圖片邊緣的功能,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解一下
    2023-06-06
  • Java線程間共享與協(xié)作詳細介紹

    Java線程間共享與協(xié)作詳細介紹

    這篇文章主要介紹了Java線程間共享與協(xié)作詳細介紹,Java?支持多個線程同時訪問一個對象或者對象的成員變量,更多相關介紹需要的朋友可以參考一下
    2022-09-09
  • java驗證用戶是否已經(jīng)登錄 java實現(xiàn)自動登錄

    java驗證用戶是否已經(jīng)登錄 java實現(xiàn)自動登錄

    這篇文章主要介紹了java驗證用戶是否已經(jīng)登錄,java實現(xiàn)自動登錄,感興趣的小伙伴們可以參考一下
    2016-04-04

最新評論