springboot学习day02

30 阅读1分钟

配置文件优先级

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