SpringBoot属性配置
多环境配置
一般我们开发时,需要配置多个环境,在Spring Boot中多环境配置文件名需要满足application-{profile}.properties
或者application-{profile}.yaml
的格式,其中{profile}
对应你的环境标识,比如:
application-dev.properties
:开发环境application-test.properties
:测试环境application-prod.properties
:生产环境
让哪个配置文件被加载,需要在application.properties
文件中通过spring.profiles.active
属性来设置,其值对应{profile}
值,如:spring.profiles.active=test
。
自定义属性
定义属性
可以在application.yaml
文件中添加自定义属性,如:
author:
name: Jankin
project: SpringBootLearning
signature: Each day leads to change!
desc: ${author.name}正在学习${author.project}, ${author.signature} as a signature。
属性引用
像很多语言一样,用${属性名}
就可以引用了,如上面的desc
字段里引用了name
等字段。
加载属性
-
通过
@Value("${属性名}")
注解来加载对应的配置属性,如:@Value("${author.name}") private String name;
-
通过
@ConfigurationProperties(prefix = "自定义对象名")
注解来自动加载对象,这个用来加载完整对象比较方便,如:@Component @ConfigurationProperties(prefix = "author") public class AuthorConfigProperties { private String name; private String project; private String signature; private String desc; }
使用随机数
在使用自定义属性时,有时我们需要使用一些随机数。可以通过${random}
来产生int值、long值或者string字符串,来支持属性的随机值。如:
random:
value: ${random.value}
int: ${random.int}
test10: ${random.int(10)}
自定义properties文件的中文乱码
依次打开idea->Preferences->Editor->File Encodings,把文件编码设置为utf-8,按照如下设置:
如果还是不行的话,把之前的属性拷贝出来粘贴在空白文件中,再重新粘贴回去,重启idea试试应该就好了。
建议属性文件使用yaml格式,就没有中文乱码的问题了。