配置文件优先级
properties>yml>yaml
- properties
server.port=8081
- yml
server:
port: 8082
person:
name: zhangsan
age: 12
person1: {name: zhangshan,age: 12}
address:
- beijin
- shanghai
address1: [shanghai,beijin]
name: zhangsan
person1:
name: ${name}
age: 12
取值的方式
- @Value()/Enviroment
@Value("${person.name}")
private String name;
@Value("${address[0]}")
private String address;
@Autowired
private Environment env;
@RequestMapping("/hello")
public String hello(){
return env.getProperty("person.name");
}
- @ConfigurationProperties()
package com.ivan.controller;
@Component
@ConfigurationProperties(prefix = "person")
public class Person {
private String name;
private int age;
private String[] address;
public String[] getAddress() {
return address;
}
public void setAddress(String[] address) {
this.address = address;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
配置不同的环境
- yml
---
server:
port: 8081
spring:
config:
activate:
on-profile: dev
---
server:
port: 8082
spring:
config:
activate:
on-profile: test
---
spring:
profiles:
active: test
- properties
- application-dev.properties
- application-test.properties
- application-pro.properties
激活方式
spring.profiles.active=dev