1. 程式人生 > >SpringBoot 之 自定義配置檔案及讀取配置檔案application.properties或yml

SpringBoot 之 自定義配置檔案及讀取配置檔案application.properties或yml

讀取核心配置檔案

核心配置檔案是指在resources根目錄下的application.propertiesapplication.yml配置檔案,讀取這兩個配置檔案的方法有兩種,都比較簡單。

核心配置檔案application.properties內容如下:

server.port=9090

test.msg=Hello World Springboot!
  • 使用方式(常用):
@RestController
public class WebController {

    @Value("${test.msg}")
    private String msg;

    @RequestMapping
(value = "index", method = RequestMethod.GET) public String index() { return "The Way 1 : " +msg; } }

注意:在的${}中包含的是核心配置檔案中的鍵名。在Controller類上加表示將此類中的所有檢視都以JSON方式顯示,類似於在檢視方法上加。

  • 使用Environment方式
@RestController
public class WebController {

    @Autowired
    private Environment env;

    @RequestMapping
(value = "index2", method = RequestMethod.GET) public String index2() { return "The Way 2 : " + env.getProperty("test.msg"); } }

注意:這種方式是依賴注入Evnironment來完成,在建立的成員變數private Environment env上加上註解即可完成依賴注入,然後使用env.getProperty("鍵名")即可讀取出對應的值。

讀取自定義配置檔案

為了不破壞核心檔案的原生態,但又需要有自定義的配置資訊存在,一般情況下會選擇自定義配置檔案來放這些自定義資訊,這裡在resources/config

目錄下建立配置檔案my-web.properties

resources/config/my-web.properties內容如下:

web.name=zslin
web.version=V 1.0
[email protected]

建立管理配置的實體類:

@ConfigurationProperties(locations = "classpath:config/my-web.properties", prefix = "web")
@Component
public class MyWebConfig {

    private String name;

    private String version;

    private String author;

    public String getAuthor() {
        return author;
    }

    public String getName() {
        return name;
    }

    public String getVersion() {
        return version;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setVersion(String version) {
        this.version = version;
    }
}

注意:

    • locations:指定配置檔案的所在位置
    • prefix:指定配置檔案中鍵名稱的字首(我這裡配置檔案中所有鍵名都是以web.開頭)
  • 使用是讓該類能夠在其他地方被依賴使用,即使用註釋來建立例項。

建立測試Controller

@RestController
@RequestMapping(value = "config")
public class ConfigController {

    @Autowired
    private MyWebConfig myWebConfig;

    @RequestMapping(value = "index", method = RequestMethod.GET)
    public String index() {
        return "webName: "+myWebConfig.getName()+", webVersion: "+
                myWebConfig.getVersion()+", webAuthor: "+myWebConfig.getAuthor();
    }
}

注意:由於在MyWebConfig類上加了註釋,所以可以直接在這裡使用來建立其例項物件。