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

springboot?yml配置文件值注入方式

 更新時(shí)間:2022年01月19日 11:19:43   作者://try  
這篇文章主要介紹了springboot?yml配置文件值注入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

yml配置文件值注入

搭建項(xiàng)目

參考 IDEA快速搭建spring-boot項(xiàng)目(Spring initializr)

pom.xml

創(chuàng)建項(xiàng)目后,還需在pom.xml中的<dependencies>標(biāo)簽添加該依賴。

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
</dependency>

創(chuàng)建實(shí)體類

package com.demo.demo;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
    private String name;
    private int age;
    @Override
    public String toString() {
        return "person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}

spring boot核心配置文件application.yml

1.將application.properties文件后綴改為.yml,內(nèi)容為:

server:
  port: 8080
person:
  name: 小狗
  age: 21

測(cè)試類

package com.demo.demo;
import com.demo.demo.Person;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
    @Autowired
    Person person=new Person();
    @Test
    public void contextLoads() {
        System.out.println(person);
    }
}

運(yùn)行

在這里插入圖片描述

結(jié)果:

在這里插入圖片描述

自動(dòng)注入yml文件和properties文件

在springboot中,如果需要使用到配置文件中的數(shù)據(jù),自動(dòng)注入即可,非常方便,但是在使用yml中的屬性時(shí),自動(dòng)注入?yún)s失效了? 發(fā)現(xiàn),如果是properties文件,直接注入即可,但是yml需要增加一個(gè)配置

yml文件的自動(dòng)注入class

yml文件相對(duì)于properties較整潔和簡(jiǎn)便,在自動(dòng)注入的使用需要增加配置

增加pom依賴

? <!--*.yml auto inject config-->
? ?<dependency>
? ? ? ?<groupId>org.springframework.boot</groupId>
? ? ? ?<artifactId>spring-boot-configuration-processor</artifactId>
? ? ? ?<optional>true</optional>
? ?</dependency>

增加配置類

public class YamlPropertyLoaderFactory ?extends DefaultPropertySourceFactory {
? ? @Override
? ? public PropertySource<?> createPropertySource(String name, EncodedResource resource) throws IOException {
? ? ? ? if (null == resource) {
? ? ? ? ? ? super.createPropertySource(name, resource);
? ? ? ? }
? ? ? ? return new YamlPropertySourceLoader().load(resource.getResource().getFilename(), resource.getResource(),null);
? ? }
}

注入指定yml配置文件到實(shí)體類中

/**
?* 在需要注入的class類上加上這3個(gè)注解即可
?*/
@Configuration
@PropertySource(value = "classpath:application-quartz.yml", factory = YamlPropertyLoaderFactory.class)
@ConfigurationProperties(prefix = "quartz")
public class JobTime {
? ? private String articleCarwler;
? ? private String earthlySweetSentenceApi;
? ? private String rainbowFartApi;
? ? private String qqRobotMsgTimer;
}

說(shuō)明:

@PropertySource(value = "classpath:application-quartz.yml", factory = YamlPropertyLoaderFactory.class) 

這個(gè)注解表示注入哪個(gè)配置文件,指定第二步中的配置類

@ConfigurationProperties(prefix = "quartz") 

表示指定配置文件中的屬性是什么前綴,可忽略,例如:quartz.articleCarwler=0 0/5 * * * ?

Properties配置文件自動(dòng)注入

properties類型的配置文件就比較簡(jiǎn)單,不需要增加上面的依賴和配置,直接指定注入即可

直接注入屬性到class

@Configuration
@PropertySource("classpath:/application.properties")
@ConfigurationProperties(prefix = "quartz")
public class JobTime {
? ? private String task1;
? ? private String task2;
}

說(shuō)明:

@PropertySource("classpath:/application.properties")

指定配置文件名稱

@ConfigurationProperties(prefix = "quartz")

指定配置文件中的key的前綴,可忽略此注解, 例如:quartz.task1=0 3 * * * ?

代碼中直接注入

如果是在代碼中使用單獨(dú)的屬性,不需要將屬性都注入到class中,那么可直接使用注解注入到變量中,在代碼中直接使用

無(wú)論是yml還是properties都可以直接注入,不需要其他配置

使用注解:@Value("${key}") 就可以直接注入。

例如:

? ? @Value("${quartz.taks1}")
? ? private String taks1;

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • spring boot 的常用注解使用小結(jié)

    spring boot 的常用注解使用小結(jié)

    這篇文章主要介紹了spring boot 的常用注解使用小結(jié),需要的朋友可以參考下
    2017-05-05
  • Java終止線程實(shí)例和stop()方法源碼閱讀

    Java終止線程實(shí)例和stop()方法源碼閱讀

    這篇文章主要介紹了Java終止線程實(shí)例和stop()方法源碼閱讀,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Java基礎(chǔ) Servlet監(jiān)聽器詳解

    Java基礎(chǔ) Servlet監(jiān)聽器詳解

    這篇文章主要介紹了Java基礎(chǔ) Servlet監(jiān)聽器詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Java線程優(yōu)先級(jí)示例代碼

    Java線程優(yōu)先級(jí)示例代碼

    使用過(guò)Bit下載軟件的同學(xué)應(yīng)該很清楚,我們有多個(gè)下載任務(wù)同時(shí)執(zhí)行,而其中的某一個(gè)或多個(gè)是非常重要的,于是給這些任務(wù)設(shè)定一個(gè)高度優(yōu)先,以便任務(wù)可以獲取更多的帶寬盡早完成下載
    2013-09-09
  • 編寫Java代碼對(duì)HDFS進(jìn)行增刪改查操作代碼實(shí)例

    編寫Java代碼對(duì)HDFS進(jìn)行增刪改查操作代碼實(shí)例

    這篇文章主要介紹了Java代碼對(duì)HDFS進(jìn)行增刪改查操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring?Boot自定義?Starter并推送到遠(yuǎn)端公服的詳細(xì)代碼

    Spring?Boot自定義?Starter并推送到遠(yuǎn)端公服的詳細(xì)代碼

    這篇文章主要介紹了Spring?Boot自定義?Starter并推送到遠(yuǎn)端公服,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-09-09
  • Java 替換空格

    Java 替換空格

    本文主要介紹了Java中替換空格的方法。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • Java?JVM虛擬機(jī)調(diào)優(yōu)詳解

    Java?JVM虛擬機(jī)調(diào)優(yōu)詳解

    JVM是JavaVirtualMachine(Java虛擬機(jī))的縮寫,JVM是一種用于計(jì)算設(shè)備的規(guī)范,它是一個(gè)虛構(gòu)出來(lái)的計(jì)算機(jī),是通過(guò)在實(shí)際的計(jì)算機(jī)上仿真模擬各種計(jì)算機(jī)功能來(lái)實(shí)現(xiàn)的,本文主要介紹了jvm調(diào)優(yōu),感興趣的小伙伴們可以參考一下<BR>
    2022-07-07
  • 淺談Java的WeakHashMap源碼

    淺談Java的WeakHashMap源碼

    這篇文章主要介紹了淺談Java的WeakHashMap源碼,WeakHashMap,從名字可以看出它是某種?Map,它的特殊之處在于?WeakHashMap?里的entry可能會(huì)被GC自動(dòng)刪除,即使程序員沒(méi)有調(diào)用remove()或者clear()方法,需要的朋友可以參考下
    2023-09-09
  • springAOP完整實(shí)現(xiàn)過(guò)程

    springAOP完整實(shí)現(xiàn)過(guò)程

    當(dāng)你調(diào)用SimpleService類的doSomething方法時(shí),上述的PerformanceAspect會(huì)自動(dòng)攔截此調(diào)用,并且記錄該方法的執(zhí)行時(shí)間,這樣你就完成了一個(gè)針對(duì)Spring的AOP入門級(jí)案例,感興趣的朋友一起看看吧
    2024-02-02

最新評(píng)論