基本信息
- springboot 的默认配置文件的位置为:/src/main/resources/application.properties.
- 可以在配置文件中,去定义服务的端口号,数据库连接信息,日志级别等各种信息.
- springboot还支持YAML文件,而使用YAML文件的时候,缺点是无法通过@PropertySource注解来加载配置,但YAML将属性加载到内存中保存的时候是有序的,所以当配置文件中的信息需要具备顺序含义的时候,YAML的配置方式比起properties配置文件更有优势;
- 可以自定义参数,比如可以添加配置
project.name=spring boot
project.port=8081
project.desc=My project name is ${project.name} and project port is ${project.port}.
book.id=${random.long}
book.type=${random.value}
book.num=${random.int[10,20]}
在应用中,可以通过@Value注解加载这些自定义的参数,比如
@Component
public class ProjectProperties {
@Value("${project.name}")
private String projectName;
@Value("${project.port}")
private Integer projectPort;
@Value("${project.desc}")
private String projectDesc;
@Value("${book.id}")
private Long bookId;
@Value("${book.num}")
private Integer bookNum;
// 省略了getter,setter
}
如上例所示,参数间引用,可以用 进 行 获 取 p r o j e c t . d e s c 的 值 为 M y p r o j e c t n a m e i s s p r i n g b o o t a n d p r o j e c t p o r t i s 8081. 另 外 , 还 可 以 通 过 {}进行获取 project.desc的值为My project name is spring boot and project port is 8081. 另外,还可以通过 进行获取project.desc的值为Myprojectnameisspringbootandprojectportis8081.另外,还可以通过{random}来获取随机数
配置使用
在启动spring boot应用的时候,可以使用命令java -jar xxx.jar --server.port=8888的方式,直接将应用的端口号定义为8888.命令中的连续的两个"–"是对application.properties中的属性值直接进行赋值的标识,所以通过此属性,可以在应用启动前改变应用的属性,如端口号,数据库连接,日志等级等.
spring boot中,多环境配置时,文件名需要满足 application-{profile}.properties的格式,其中,{profile}对应的是环境标识,如下:
- application-dev.properties 开发环境
- application-test.properties 测试环境
- application-prod.properties 生产环境