2.SpringBoot配置文件
spring boot提供了两种配置文件,properties和yml/yaml,各种改配置文件格式如图:
3.读取配置文件内容
有三种方式:
1.@value
2.Environment
3.@ConfigurationProperties
@Value方式测试:
步骤:
先在控制类里定义变量准备接收---->使用@Value注释,格式@Value(“${参数名}”)----->在函数里打印出来
坑:
数组的接收并不是定义一个数组整个接受,而是将yml里数组的元素逐一拿出来,用单一变量接收。
如图:
yml
代码和结果
Environment方式测试:
新建Environment对象---->使用注解—>在函数调用对象的getProperty方法
@ConfigurationProperties方法测试
假设有一个类叫person,需要将配置文件中的关于person的属性值传递给(或者说赋值给)person类中的变量,则使用这个方法。
步骤:
写一个类---->给类添加两个注释----->controller使用Autowired注释,创建一个person对象------>直接在函数内输出整个person对象(当然也可以单个输出)
坑:使用@ConfigurationProperties注释时要指定prefix是谁,不然如果有两个name的话,它会自动匹配第一个name。接收数组需要在person类内新建一个数组,然后再遍历输出。
代码和结果:
4.profile
开发一套产品,会将其放到开发、测试、实际生产的环境中,每个环境的配置比如数据库、端口等不尽相同,profile就是用来动态配置这些东西的,写完文件之后还需要激活才能生效。
两种配置方式:多profile文件和yml多文档
三种激活方式:配置文件、虚拟机参数、命令行参数
多profile文件+配置文件激活:
application-dev.properties-------端口号8081
application-pro.properties-------端口号8082
application-test.properties-------端口号8083
不激活任何一个文件时(使用默认),端口号是8080
在配置文件application.properties里分别激活三个:
结果:
端口号是8081,说明application-dev.properties生效
结果:
端口号是8082,说明application-pro.properties生效
结果:
端口号是8083,说明application-test.properties生效