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

SpringBoot自動配置實(shí)現(xiàn)流程詳細(xì)分析

 更新時(shí)間:2022年12月12日 11:31:26   作者:4343  
這篇文章主要介紹了SpringBoot自動配置原理分析,SpringBoot是我們經(jīng)常使用的框架,那么你能不能針對SpringBoot實(shí)現(xiàn)自動配置做一個(gè)詳細(xì)的介紹。如果可以的話,能不能畫一下實(shí)現(xiàn)自動配置的流程圖。牽扯到哪些關(guān)鍵類,以及哪些關(guān)鍵點(diǎn)

第一種

給容器中的組件加上

@ConfigurationProperties注解即可

測試:

@Component
@ConfigurationProperties(prefix = "mycar")
public class Car {
    private String brand;
    private Integer price;
    private Integer seatNum;
    public Integer getSeatNum() {
        return seatNum;
    }
    public void setSeatNum(Integer seatNum) {
        this.seatNum = seatNum;
    }
    public String getBrand() {
        return brand;
    }
    public void setBrand(String brand) {
        this.brand = brand;
    }
    public Integer getPrice() {
        return price;
    }
    public void setPrice(Integer price) {
        this.price = price;
    }
    @Override
    public String toString() {
        return "Car{" +
                "brand='" + brand + '\'' +
                ", price=" + price +
                ", seatNum=" + seatNum +
                '}';
    }
    public Car() {
    }
}

在application.properties中屬性:

mycar.seatNum = 4
mycar.brand = BMW
mycar.price = 100000

即可給之后new 的Car 對象自動配置。

運(yùn)行:

public class MainApplication {
    public static void main(String[] args) {
        //返回springboot中的ioc容器
        ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
        Car car = run.getBean("car", Car.class);
        System.out.println(car);
    }
}

控制臺結(jié)果:

第二種

第一種的情況下是自己寫的類作為組件,實(shí)現(xiàn)自動裝配的過程;

但有時(shí)候使用第三方類的時(shí)候無法將其設(shè)置為自己的組件,所以就需要用

@EnableConfigurationProperties + @ConfigurationProperties

將Car類刪除@Component注解,此時(shí)Car類已經(jīng)不是組件了:

11 usages
@ConfigurationProperties(prefix = "mycar " )
public class Car {
3 usages
private String brand ;
3 usages
private Integer price ;
3 usages

此時(shí),假設(shè)Car是第三方提供的類:

對于第三方的類 想要其作為組件就需要@Bean注解,就和之前的SSM項(xiàng)目中配置的bean

標(biāo)簽一樣:

SSM中的配置文件中:

    <bean id="car" class="xxx.xxx.xxx.Car">
        <property name="brand" value=""/>
        <property name="price" value=" "/>
        <property name="seatNum" value=" "/>
    </bean>

就等同于SpringBoot中配置類下的:

    @Bean
    public Car car(){
        Car car = new Car();
        return car;
    }

其中屬性的賦值就需要在Car類上增加

@ConfigurationProperties(prefix = "mycar")注解

最后在該配置類上使用

@EnableConfigurationProperties(Car.class)注解開啟即可
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(Car.class)
public class CarAutoConfiguration {
    @Bean
    public Car car(){
        Car car = new Car();
        return car;
    }
}

控制臺顯示結(jié)果一樣:

到此這篇關(guān)于SpringBoot自動配置實(shí)現(xiàn)流程詳細(xì)分析的文章就介紹到這了,更多相關(guān)SpringBoot自動配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring關(guān)閉Tomcat Servlet容器時(shí)內(nèi)存泄漏問題解決方案

    Spring關(guān)閉Tomcat Servlet容器時(shí)內(nèi)存泄漏問題解決方案

    這篇文章主要介紹了Spring關(guān)閉Tomcat Servlet容器時(shí)內(nèi)存泄漏問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Springboot整合activemq的方法步驟

    Springboot整合activemq的方法步驟

    這篇文章主要介紹了Springboot整合activemq的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-01-01
  • Java中的關(guān)鍵字volatile詳解

    Java中的關(guān)鍵字volatile詳解

    這篇文章主要介紹了Java中的關(guān)鍵字volatile,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java客戶端線上Apollo服務(wù)端的實(shí)現(xiàn)

    java客戶端線上Apollo服務(wù)端的實(shí)現(xiàn)

    這篇文章主要介紹了java客戶端線上Apollo服務(wù)端的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • JAVA獲得域名IP地址的方法

    JAVA獲得域名IP地址的方法

    這篇文章主要介紹了JAVA獲得域名IP地址的方法,涉及java域名操作的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • springboot通過SchedulingConfigurer實(shí)現(xiàn)多定時(shí)任務(wù)注冊及動態(tài)修改執(zhí)行周期(示例詳解)

    springboot通過SchedulingConfigurer實(shí)現(xiàn)多定時(shí)任務(wù)注冊及動態(tài)修改執(zhí)行周期(示例詳解)

    這篇文章主要介紹了springboot通過SchedulingConfigurer實(shí)現(xiàn)多定時(shí)任務(wù)注冊及動態(tài)修改執(zhí)行周期,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • Java8新特性:函數(shù)式編程

    Java8新特性:函數(shù)式編程

    Java8最新引入函數(shù)式編程概念,該項(xiàng)技術(shù)可以大大提升編碼效率,本文會對涉及的對象等進(jìn)行兩種方法的對比,對新技術(shù)更直白的看到變化,更方便學(xué)習(xí)
    2021-06-06
  • java非法字符‘\ufeff‘解決方法

    java非法字符‘\ufeff‘解決方法

    本文主要介紹了java非法字符‘\ufeff‘解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • Springboot中靜態(tài)文件的兩種引入方式總結(jié)

    Springboot中靜態(tài)文件的兩種引入方式總結(jié)

    這篇文章主要介紹了Springboot中靜態(tài)文件的兩種引入方式總結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java中的CyclicBarrier循環(huán)柵欄詳解

    Java中的CyclicBarrier循環(huán)柵欄詳解

    這篇文章主要介紹了Java中的CyclicBarrier循環(huán)柵欄詳解,CyclicBarrier循環(huán)柵欄是用來進(jìn)行線程協(xié)作,等待線程滿足某個(gè)計(jì)數(shù),構(gòu)造時(shí)設(shè)置計(jì)數(shù)個(gè)數(shù),每個(gè)線程執(zhí)行到某個(gè)需要“同步”的時(shí)刻調(diào)用 await()方法進(jìn)行等待,當(dāng)?shù)却木€程數(shù)滿足計(jì)數(shù)個(gè)數(shù)時(shí),繼續(xù)執(zhí)行,需要的朋友可以參考下
    2023-12-12

最新評論

苏尼特右旗| 阿鲁科尔沁旗| 四会市| 江陵县| 云龙县| 清水河县| 湘西| 高雄县| 定边县| 故城县| 阿拉善左旗| 宜兰市| 弥渡县| 垦利县| 郸城县| 广宁县| 鸡泽县| 冷水江市| 嘉兴市| 芮城县| 五家渠市| 台中县| 栖霞市| 佛坪县| 开江县| 凤庆县| 宝兴县| 思茅市| 增城市| 建始县| 松潘县| 屯留县| 南丰县| 邮箱| 屯昌县| 商丘市| 高邮市| 阳山县| 山东省| 英德市| 楚雄市|