當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
SpringBoot_配置-配置文件占位符
生活随笔
收集整理的這篇文章主要介紹了
SpringBoot_配置-配置文件占位符
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
配置文件的占位符,我們在配置文件中,在寫某一個值的時候,第一種我們可以使用SpringBoot提供的隨機數,我們想使用前面配置的值,我們可以使用占位符獲取這個值,包括沒有在前面配置的話,可以使用冒號來使用默認值,我們來演示一下這兩個
我們要讀取person.properties,我們就不搞的這么麻煩了,就讓他讀主配置文件,然后把主配置文件的properties打開,無論是用yml還是properties,都支持我們這個操作,比如隨機數,比如張三,random里面有一個uuidperson.last-name=\u674E\u56DB${random.uuid}包括年齡我們也可以寫一個隨機數,我們年輕是一個隨機的整數person.age=${random.int}比如看這個名字,比如狗的名字我們想取出person.last-name的值,然后在后面拼一個dogperson.dog.name=${person.last-name}_dog包括前面配的server.port的東西,這是我的這兩個寫法,一個用了一個隨機數,還有咱們的占位符,測試一下我的person對象,獲取出來是什么樣子呢,我們發現person里面的lastName,張三這是一串隨機數,age是一個隨機的int值,包括我們的dog,dog是張三前面這一串加上dog,包括說如果我們前面沒有配置
#server.port=8081person.last-name=\u674E\u56DB${random.uuid}
person.age=${random.int}
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=${person.last-name}_dog
person.dog.age=15
package com.learn.bean;import java.util.Date;
import java.util.List;
import java.util.Map;import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** 將配置文件中配置的每一個屬性的值,映射到這個組件* @ConfigurationProperties:告訴SpringBoot將本類中的所有屬性和配置文件中的相關的配置進行綁定* prefix="person":配置文件中哪個下面的所有屬性進行映射* * 只有這個組件是容器中的組件,才能容器提供的@ConfigurationProperties功能;* 默認從全局配置文件中獲取值;*/
//@PropertySource(value= {"classpath:person.properties"})
@Component
@ConfigurationProperties(prefix="person")
//@Validated
public class Person {/*** <bean class="person">* <property name="lastName" value="字面量/${key}從環境變量、配置文件中獲取值/#{SpEL}"></property>* </bean>*/// lastName必須是郵箱格式//@Email
// @Value("${person.last-name}")private String lastName;
// @Value("#{10*2}")private Integer age;@Value("true")private Boolean boss;private Date birth;
// @Value("${person.maps}")private Map<String,Object> maps;private List<Object> lists;private Dog dog;public String getLastName() {return lastName;}public void setLastName(String lastName) {this.lastName = lastName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Boolean getBoss() {return boss;}public void setBoss(Boolean boss) {this.boss = boss;}public Date getBirth() {return birth;}public void setBirth(Date birth) {this.birth = birth;}public Map<String, Object> getMaps() {return maps;}public void setMaps(Map<String, Object> maps) {this.maps = maps;}public List<Object> getLists() {return lists;}public void setLists(List<Object> lists) {this.lists = lists;}public Dog getDog() {return dog;}public void setDog(Dog dog) {this.dog = dog;}@Overridepublic String toString() {return "Person [lastName=" + lastName + ", age=" + age + ", boss=" + boss + ",
birth=" + birth + ", maps="+ maps + ", lists=" + lists + ", dog=" + dog + "]";}}
package com.learn.springboot;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.context.ApplicationContext;
import org.springframework.test.context.junit4.SpringRunner;import com.learn.bean.Person;/*** SpringBoot單元測試** 可以在測試期間很方便的類似編碼一樣進行自動注入等容器的功能*/
@RunWith(SpringRunner.class)
@SpringBootTest
public class SpringBoot02ConfigurationTests {@AutowiredPerson person;@AutowiredApplicationContext ioc;@Testpublic void testHelloService() {boolean b = ioc.containsBean("helloService02");System.out.println(b);}@Testpublic void contextLoads() {System.out.println(person);}}
我現在前面沒有配人名,他現在就解析出錯,出錯的原因呢,是我們要綁定person的值,我們要綁定person里面的每一個屬性,他都要在配置文件中要找到,然后我們不能夠解析person.last-name,我們配置文件中沒有lastName相關的信息,我們寫一個person.hello,我們從來沒有寫過person.hello的值,如果獲取不到值就是默認的表達式,但是我們可以使用一個冒號,給定一個默認值,如果person.hello取不出值,我們就默認使用后面這一串,dog就叫hello_dog沒問題
#server.port=8081person.last-name=\u674E\u56DB${random.uuid}
person.age=${random.int}
person.birth=2017/12/15
person.boss=false
person.maps.k1=v1
person.maps.k2=14
person.lists=a,b,c
person.dog.name=${person.hello:hello}_dog
person.dog.age=15
這就是我們的配置文件占位符,隨機數的其他用法,大家在這試一試就行了,我們可以用這幾個隨機數,第一個我們能夠用這些隨機數
占位符獲取之前配置的值,如果沒有,可以使用指定默認值,這些隨機數也能用,包括我們獲取默認值也能用
?
總結
以上是生活随笔為你收集整理的SpringBoot_配置-配置文件占位符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot_配置-@Prope
- 下一篇: SpringBoot_配置-配置文件的加