亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么定義一個spring boot starter

發布時間:2021-06-12 10:51:17 來源:億速云 閱讀:162 作者:小新 欄目:編程語言

這篇文章主要介紹了怎么定義一個spring boot starter,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

一、建立模塊

名稱規范:XXX-spring-boot-starter

二、編寫Bean

public class BeanConfig {

    @Bean
    TestBean testBean(){
        TestBean testBean = new TestBean();
        return testBean;
    }

}

這里我們有一個BeanConfig類,通過它去注入一些Bean

三、將BeanConfig交給Spring容器

編寫spring.factories: 創建resources\META-INF\spring.factories文件

org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.config.BeanConfig

那么在啟動時會通過AutoConfigurationImportSelector將BeanConfig注入到容器中。

四、打jar,生成maven依賴(略)

導入依賴即可以生效了。

如果想自定義一些配置怎么去做?

編寫配置類:

@ConfigurationProperties("com.test") // 需要配合@EnableConfigurationProperties使用
public class BeanProperties {

    private String testName = "default-name";

    private Long telephoneNumber;
    // 必須有set方法
    public void setTestName(String testName) {
        this.testName = testName;
    }

    public void setTelephoneNumber(Long telephoneNumber) {
        this.telephoneNumber = telephoneNumber;
    }

    @PostConstruct
    void init(){
        String name = this.testName;
        System.out.println("-----------------------------"+name);
        Long telephoneNumber = this.telephoneNumber;
        System.out.println("-----------------------------"+telephoneNumber);
    }
}

其中的@ConfigurationProperties注解要和@EnableConfigurationProperties搭配使用(實際也是一個EnableConfigurationPropertiesRegistrar)

那么在BeanConfig上添加注解:@EnableConfigurationProperties(BeanProperties.class)

@EnableConfigurationProperties(BeanProperties.class)
public class BeanConfig {

    @Bean
    TestBean testBean(){
        TestBean testBean = new TestBean();
        return testBean;
    }

}

項目中引入依賴后,只需要在配置文件中指定值就可以了,這里的前綴要和@ConfigurationProperties指定的值相同

#com.test.test-name=zhangsan
com.test.telephone-number=12300000000

不指定則使用定義的默認值:

-----------------------------default-name
-----------------------------12300000000

當然,@ConfigurationProperties注解也不一定要和@EnableConfigurationProperties搭配使用,前提是spring容器要知道你的@ConfigurationProperties配置類

修改BeanConfig類,將注解改為@Import(BeanProperties.class)也是有效的。

@Import(BeanProperties.class)
public class BeanConfig {

    @Bean
    TestBean testBean(){
        TestBean testBean = new TestBean();
        return testBean;
    }

}

如果不通過SPI方式導入怎么做?

還是@Import注解方式,首先自定義注解:

@Target({java.lang.annotation.ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Import({BeanConfig.class})
public @interface StarterAnnotation {
}

這里Import導入了BeanConfig

然后項目中啟動類加上注解@StarterAnnotation即可。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“怎么定義一個spring boot starter”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

越西县| 甘洛县| 张家口市| 禄劝| 樟树市| 凤城市| 宿州市| 高唐县| 汝州市| 荆门市| 巍山| 兴义市| 灌南县| 彩票| 合水县| 青田县| 库车县| 华阴市| 泰兴市| 巴青县| 鹤岗市| 汉寿县| 亚东县| 伊川县| 清新县| 阿克陶县| 龙口市| 六盘水市| 前郭尔| 吴江市| 丹江口市| 佛冈县| 灌云县| 永新县| 瓮安县| 八宿县| 宕昌县| 昆明市| 滨州市| 当雄县| 湖南省|