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

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

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

運行:

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é)果:

第二種

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

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

@EnableConfigurationProperties + @ConfigurationProperties

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

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

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

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

標簽一樣:

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

相關(guān)文章

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

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

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

    Springboot整合activemq的方法步驟

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

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

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

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

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

    JAVA獲得域名IP地址的方法

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

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

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

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

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

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

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

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

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

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

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

最新評論

鄯善县| 三河市| 金川县| 黄梅县| 兴隆县| 繁昌县| 华坪县| 阳曲县| 铜山县| 吉安县| 前郭尔| 鄂伦春自治旗| 红安县| 南阳市| 阳曲县| 昂仁县| 沁源县| SHOW| 五原县| 沈阳市| 化德县| 马鞍山市| 怀远县| 江油市| 中江县| 荃湾区| 蒲江县| 磐安县| 临江市| 噶尔县| 阜平县| 米林县| 靖江市| 威信县| 鞍山市| 周宁县| 留坝县| 宁城县| 商丘市| 九寨沟县| 婺源县|