02Spring Boot配置文件详解

02Spring Boot配置文件详解

自定义属性

  1. 在src/main/java/resources目录下创建一个application.properties或application.yml
  2. 在application.yml自定义一组属性
my:
 name: boot
 age: 12
  1. 读取配置文件的值只需要加@Value("${属性名}")
@RestController
public class ConfigController {

    @Value("${my.name}")
    private String name;
    @Value("${my.age}")
    private int age;

    @RequestMapping(value = "/config")
    public String config(){
        return name+":"+age;
    }
}

  1. 启动项目,访问:localhost:8080/config

将配置文件的属性赋给实体类

  1. 当配置中有很多属性时,可以把这些属性作为字段创建javabean,并将属性值赋予给他们
my:
  name: boot
  age: 20
  # ${random} ,用来生成各种不同类型的随机值。
  number:  ${random.int}
  uuid: ${random.uuid}
  max: ${random.int(10)}
  value: ${random.value}
  greeting: hi,i'm  ${my.name}

  1. 创建一个javabean,并添加注解@ConfigurationProperties(prefix = "my")
@ConfigurationProperties(prefix = "my")
public class ConfigBean {
    private String name;
    private int age;
    private int number;
    private String uuid;
    private int max;
    private String value;
    private String greeting;
    get...set...省略
    使用idea自动生成get,set和toString
}
  1. 在应用类或启动类上增加注解
@EnableConfigurationProperties({ ConfigBean.class })
  1. 添加ConfigBeanController类
@RestController
public class ConfigBeanController {
    @Autowired
    private ConfigBean configBean;
    @RequestMapping("/configbean")
    public String config(){
        // 输出所有字段的值
        return  configBean.toString();
    }
}
  1. 启动项目,访问http://localhost:8080/configbean

自定义配置文件

  1. application配置文件是系统默认的,我们可以添加其他名称的配置文件,如test.properties(不能是test.yml,测试读不到数据)
com.boot.name=boot
com.boot.age=20
  1. 添加TestBean,需要指定文件名和前缀
@Configuration
@PropertySource(value = "classpath:test.properties")
@ConfigurationProperties(prefix = "com.boot")
public class TestBean {
    private String name;
    private int age;
    省略get,set,tostring
}
  1. 添加TestBeanController
@EnableConfigurationProperties({TestBean.class})
@RestController
public class TestBeanController {
    @Autowired
    private  TestBean testBean;
    @RequestMapping("/testconfig")
    public String testConfig() {
        return testBean.toString();
    }
}

  1. 启动项目,返回http://localhost:8080/testconfig

多个环境配置文件

  1. 在现实的开发环境中,我们需要不同的配置环境;格式为application-{profile}.properties,其中{profile}对应你的环境标识,比如
  • application-test.properties:测试环境
  • application-dev.properties:开发环境
  • application-prod.properties:生产环境
  1. 实际使用的配置文件,通过在application.yml中增加:
 spring:
  profiles:
    active: dev
  1. 添加application-dev.yml
my:
  name: dev
  age: 11
#server:
#  port: 8082
  1. 启动程序,访问http://localhost:8080/config,发现读取的是application-dev.yml中的配置
  2. 访问http://localhost:8080/configbean,会发现,当application-dev.yml和application.yml中有重名的字段时,前者会覆盖后者的值。
ConfigBean{name='dev', age=11, number=-1422131996, uuid='5bebc511-f1a4-4f2b-95ed-540e4b48e8bd', max=0, value='8b96a5bbde492fb189e4fa52573c9caf', greeting='hi,i'm dev'}
posted @ 2019-04-26 20:10  金河  阅读(266)  评论(0编辑  收藏  举报