1. 程式人生 > >spring boot讀取配置文件

spring boot讀取配置文件

text 位置 pub tail fig one pat stc path

一、springboot配置文件

核心配置文件和自定義配置文件。核心配置文件是指在resources根目錄下的application.propertiesapplication.yml配置文 件。為了不破壞核心文件的原生態,但又需要有自定義的配置信息存在,一般情況下會選擇自定義配置文件來放這些自定義

信息,這裏在resources/config目錄下創建配置文件config.properties

技術分享圖片

二、核心配置文件的兩種讀取方法

核心配置文件內容:

server:
  port: 8081
  context-path: /boot

service:
  name: freya

(1)@Value("${鍵名}")

RestController
public class HelloController {

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

    @RequestMapping(value = "/hello")
    public String hello() {
        return "hello spring boot! " + name;
    }
}

(2)使用Environment,env.getProperty("鍵名")

@RestController
public class HelloController {
    @Autowired
    private Environment env;

    @RequestMapping(value = "/hello")
    public String hello() {
        return "hello spring boot! " + env.getProperty("service.name");
    }
}

三、自定義配置文件的讀取方法

自定義的config.properties的內容如下:

project.version=1.0-SNAPSHOT
project.name=boot

創建實體類MyConfig。

註意:springboot1.5版本以下@ConfigurationProperties有兩個屬性locations(指定配置文件的所在位置),

prefix(指定配置文件中鍵名稱的前綴)。但是1.5版本及以上的版本取消了locations屬性,為了指定配置文件的

位置,使用@PropertySource(value = "自定義配置文件路徑")指定文件所在位置。

@Component
@ConfigurationProperties(prefix = "project")
@PropertySource(value = "classpath:config/config.properties")
public class MyConfig {
    private String version;
    private String name;

    public String getVersion() {
        return version;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
@RestController
public class HelloController {

    @Autowired
    private MyConfig myConfig;

    @RequestMapping(value = "/hello")
    public String hello() {
        return "hello spring boot! " myConfig.getVersion() + " " +  myConfig.getName() ;
    }
}

spring boot讀取配置文件