springboot之properties,yml配置文件规范及数据映射

配置文件信息会存入

spring的apllicationContext容器

,可以用@value和spel表达式获取

 

存:

application.properties配置:

#端口号
#server.port=8081
#应用名称 Tomcat started on port(s): 8080 (http) with context path ''
server.servlet.context-path=/demo

application.yml配置:

#规范key:空格value key: value
#普通属性配置
name: zhangsan

#对象的配置
persion:
  name: lisi
  age: 20
  password: asd

#行内对象配置,写在一行
account: {username: asds,password: 123asd}

#配置端口信息,配置文件有加载顺序
#如proerties文件配置了端口号,yml也配置了
#proerties文件会覆盖yml  加载顺序yml>yaml>proerties
server:
  port: 8082

#配置复杂类型数据,集合{},数组[]
#数组[基本字符]
city:
  - beijing
  - tianjin
  - shanghai
  - guangzhou

#city: [beijing,tianj,hangzhou,shanghai]

#数组[对象]
arr:
  - username: zhangsan
    password: aaa
    address: shanghai
  - username: lisi
    password: zzz
    address: hangzhou
#方式2
arr1: [{username: zhangsan,password: aaa,age: 18},{username: lisi,password: sss,age: 20}]

#集合
mymap:
  key1: value1
  key2: value2
  key3: value3

 

取:

方式1:比较单一,实际中不可能有100个属性就这么取100个

/**
 * @Date 2019/9/25 4:09
 * by mocar
 */
@RestController
@RequestMapping("/quick")
public class QuickController {
    @Value("${name}")//从spring的apllicationContext容器中取
    private String name;

    //取persion对象属性age
    @Value("${persion.age}")
    private Integer age;


    @RequestMapping("/quick")
    public String quick(){

        return "name:" + name +",age:" +age;
    }
}

springboot之properties,yml配置文件规范及数据映射_第1张图片

 

 

方式2:

基于注解

@ConfigurationProperties

 

/**
 * @Date 2019/9/25 4:09
 * by mocar
 */
@RestController
@RequestMapping("/quick2")
//从spring的apllicationContext容器中取
//参考配注解@enableAutoconfiguration的方式根据前缀自动映射属性值,
// 前提是提供属性的get和set方法
@ConfigurationProperties(prefix = "persion")
public class Quick2Controller {

    private String name;
    private Integer age;

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @RequestMapping("/quick2")
    public String quick(){

        return "name:" + name +",age:" +age;
    }
}

 

需要配置一个该注解的@ConfigurationProperties的执行器依赖,不然会警告:

pom文件中加入执行器的依赖即可

好处: 注入属性时有提示

 

        
        
            org.springframework.boot
            spring-boot-configuration-processor
            true
        

springboot之properties,yml配置文件规范及数据映射_第2张图片

你可能感兴趣的:(springcloud)