SpringBoot配置之a(chǎn)pplication.properties

簡(jiǎn)述

Spring Boot使用了一個(gè)全局的配置文件application.properties,放在src/main/resources目錄下或者src/main/resources/config下。在 src/main/resources/config 下的優(yōu)先級(jí)高 。Sping Boot的全局配置文件的作用是對(duì)一些默認(rèn)配置的配置值進(jìn)行修改。

自定義屬性

在application.properties

com.example.name="MJ"
@RestController
public class HelloController {
   @Value("${com.example.name}")
    private String name;

    @GetMapping("/user")
    public String info(){
        return  name;
    }
}

屬性映射到類(lèi)中

@Configuration
@ConfigurationProperties(prefix = "com.example")
public class ConfigBean {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
@RestController
@EnableConfigurationProperties({ConfigBean.class})
public class HelloController {

    @Autowired
    ConfigBean configBean;

    @GetMapping("/user2")
    public String info2(){
        String name = configBean.getName();
        return name;
    }   
}

使用自定義配置文件

新建 test.properties

my.name="who"
@Configuration
@ConfigurationProperties(prefix = "my")
@PropertySource("classpath:test.properties")
public class ConfigTestBean {
    private String name;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
@RestController
@EnableConfigurationProperties({ConfigBean.class,ConfigTestBean.class})
public class HelloController {

    @Autowired
    ConfigBean configBean;

    @Autowired
    ConfigTestBean configTestBean;

    @GetMapping("/user2")
    public String info2(){
        String name = configBean.getName();
        return name;
    }

    @GetMapping("/user3")
    public String info3(){
        String name = configTestBean.getName();
        return  name;
    }
}

@Component 或 @Configuration 都可以當(dāng) ,會(huì)被 當(dāng)成 bean 來(lái)管理

隨機(jī)值分配

my.secret=${random.value}
my.number=${random.int}
my.bignumber=${random.long}
my.uuid=${random.uuid}
my.number.less.than.ten=${random.int(10)}
my.number.in.range=${random.int[1024,222222]}

參數(shù)間引用

com.example.name="MJ"
com.example.say="hello"
com.example.example=${com.example.name} say : ${com.example.say}

Profile-多環(huán)境配置

在Spring Boot中多環(huán)境配置文件名需要滿(mǎn)足application-{profile}.properties的格式,其中{profile}對(duì)應(yīng)你的環(huán)境標(biāo)識(shí),比如:

  • application-dev.properties:開(kāi)發(fā)環(huán)境
  • application-prod.properties:生產(chǎn)環(huán)境

想要使用對(duì)應(yīng)的環(huán)境,只需要在application.properties中使用spring.profiles.active屬性來(lái)設(shè)置,值對(duì)應(yīng)上面提到的{profile},這里就是指dev、prod這2個(gè)。

啟動(dòng)項(xiàng)目動(dòng)時(shí)候帶上

java -jar xxx.jar --spring.profiles.active=dev

參考:
Spring Boot干貨系列:配置文件解析
江南一點(diǎn)雨
江南一點(diǎn)雨

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一直有自知之明,自己聲音太小了,身邊的人也反映過(guò)這問(wèn)題,還有說(shuō)話(huà)不自信,說(shuō)話(huà)含糊。。。想改變下,挑戰(zhàn)自己。性格比較...
    PeeWee閱讀 168評(píng)論 0 0
  • 2017年11月25日 星期六 晴 今天周六,我和孩子也可以晚點(diǎn)起床,可是,習(xí)慣了平時(shí)的作息時(shí)間,...
    宋雯楠媽媽閱讀 194評(píng)論 0 0
  • 樓主是一名iOS 最近剛?cè)肟覨lutter 用到了FlutterWebviewPlugin 但是有些原因 想修改一...
    鹿GANG閱讀 1,071評(píng)論 0 2
  • 今天剛走進(jìn)教室,小藍(lán)同學(xué)就拿著一本書(shū)跑到我的面前。告訴我:“老師,這是我寫(xiě)的書(shū),送您一本?!比缓蟠蜷_(kāi)扉頁(yè),我看到上...
    航子?jì)屵?/span>閱讀 256評(píng)論 0 1

友情鏈接更多精彩內(nèi)容