- spring-boot的默认配置文件位置为src/main/resources/application.properties
- spring-boot的配置文件除了可以使用传统的properties文件之外,还支持现在被广泛推荐使用的YAML文件。YAML采用的配置格式不像properties的配置那样以单纯的键值对形式来表示,而是以类似大纲的缩进形式来表示,下面是一段YAML配置信息:
- 自定义web的服务端口号server.port=8888
- 指定应用名spring.application.name=hello(该名字在后续spring cloud中会被注册为服务名)
-
environments: dev: url:http://dev.bar.com name:Developer Setup prod: url:http://foo.bar.com name:My Cool App
等价于
environments.dev.url=http://dev.bar.com environments.dev.name=Developer Setup environments.dev.prod.url=http://foo.bar.com environments.dev.prod.name=My Cool App
- 除此之外,YAML还可以在一个单个文件中通过使用spring.profiles属性来定义多个不同的环境配置
server: port:8881 --- spring: profiles:test server: port:8882 --- spring: profiles:prod server: port:8883
解析:在指定环境为test时,server.port将使用8882端口,而在prod环境中,server.port将使用8883端口,如果没有指定环境,server.port使用8881端口
- 我们也可以在application.properties添加自定义参数,并在系统中通过@Value注解来加载
book.name=mybook book.author=zhangsan
@Component public class Book{ @Value("${book.name}") private String name; @Value("${book.author}") private String author; //省略getter和setter }
- 在application.properties中的各个参数之间可以直接通过使用PlaceHolder的方式来进行引用:
book.name=mybook book.author=zhangsan book.desc=${book.author} is writing 《${book.name}》
- 使用随机数:
${random}的配置方式主要有以下几种,读者可以作为参考使用 #随机字符串 blog.value=${random.value} #随机int blog.number=${random.int} #随机long blog.bignumber=${random.long} #10以内的随机数 blog.test1=${random.int(10)} #10~20的随机数 blog.test2=${random.int[10,20]}
- 在启动命令中直接加入参数,比如 java -jar xxx.jar --server.port=8888,直接以命令行的方式来设置server.port属性,并将启动应用的端口设为8888
- 多环境配置:在spring-boot中多环境配置的文件名要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,如下所示
- application-dev.properties:开发环境
- application-test.properties:测试环境
- application-prod.properties:生产环境
至于具体哪个配置文件会被加载,需要在application.properties文件中的spring.profiles.active来设置,其值对应配置文件中的${profies}值。比如spring.profies.active=test就会加载application-test.properties文件的内容(spring.profiles.active=dev为默认值)
ps:学习来自《spring cloud微服务实战》