SpringBoot 第二篇:SpringBoot配置文件使用

背景

項目跑起來,和以前相比,現在的配置文件能幹什麼?SpringBoot 項目的配置文件就是創建項目時,自帶的 application.properties ,打開裏面空空如也。這個文件裏面的語法是基於 YAML 語言的,與原來的 Properties 比,結構一目瞭然。所以直接把配置文件名改爲 application.yml 。

環境

後續如果沒有新增其他軟件的話,就是和第一節保持一致。

問題

1、以前的Spring下的自定義環境變量現在應該放哪裏?

2、項目啓動時端口號在哪裏指定?

3、多環境配置文件如何啓用?

答案

1、自定義環境變量現在都可以定義在 application.yml 中,該怎麼寫呢 ?

就是基於 YAML 語法填寫:

k:(空格) v:表示一對鍵值對(空格必須有);

空格的縮進來控制層級關係;只要是左對齊的一列數據,都是同一個層級的,屬性和值也是大小寫敏感;如下所示:

user1:
 name: Lili
 age: 18

user2:
 name: Lucy
 age: 22

如果需要讀取配置文件的屬性值只需要加 @Value("${屬性名}”),如下圖:

package com.mm.work.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloWorld {

    @Value("${user2.name}")
    private String name;

    @Value("${user2.age}")
    private int age;


    @RequestMapping("/")
    public String test(){
        return "Hello World!";
    }

    @RequestMapping("/conf")
    public String conf(){
        return "配置文件取值:" + name + "|" + age;
    }
}

啓動項目,訪問項目IP端口:http://localhost:8080/conf

image


將自定義的屬性值賦值給Bean文件,比如我們單獨配置了一個文件 custmos.properties。

com.mm.name=test
com.mm.addr=wuhan

將這個信息賦值到Bean上,pom需要引用SpringBoot解析的一個包, 新建一個bean文件來對應文件裏的屬性

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

bean文件加上文件引用註解:

@Configuration
@PropertySource(value = "classpath:custmos.properties")
@ConfigurationProperties(prefix = "com.mm")
public class User {
    private String name;
    private int 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;
    }
}



2、修改項目啓動的端口號,還是在 application.yml 中

server:
  port: 8082


3、多環境配置文件啓用

在現實的開發環境中,我們需要不同的配置環境;格式爲application-{profile}.properties,其中{profile}對應你的環境標識,比如:

application-test.properties:測試環境
application-dev.properties:開發環境
application-uat.properties:生產環境
怎麼使用?只需要我們在application.yml中加:

 spring:
  profiles:
    active: test/dev/uat

active 配置的是哪個名字就會自動加載相應的配置文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章