springcloud的强大之处在于不需要用户自己在bean中配置相关属性,可以在配置文件实现。springboot的属性文件分为application.yml和application.propertise两种,主要用来配置数据库连接、日志相关配置等,除了格式的区别以外,两者几乎没啥区别。有一点需要注意的,也是在项目实践中摸索出来的:
yml里面的任何配置项不能是纯数字,否则会被忽略。这个properties可以加载的配置,用yml方式就无法加载,例如com.tomcat.telephone = 1234556789
其他的在程序员DD的博客里面已经写的很清楚了,我就不赘余:
http://blog.didispace.com/springbootproperties/
多环境配置
针对多环境配置多个yml或者properties文件势必显得麻烦,我个人习惯将所有环境配置写在一个配置文件中,将不变的写在一起,将随环境改变的用三个连续的“---”分隔开
--- ######################################### 开发环境 ################################### # 数据源 spring: profiles: development datasource: # 服务数据源 url: jdbc:mysql://192.168.50.1:3306/hlms_demo?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true username: sa password: 123456
server
port:1111 --- ######################################### 测试环境 ################################### spring: profiles: test datasource: # 服务数据源 url: jdbc:mysql://192.168.50.2:3306/hlms_demo?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true username: sa password: 123456
server
port:2222
- 执行
java -jar xxx.jar --spring.profiles.active=test
,可以观察到服务端口被设置为2222
,也就是测试环境的配置(test) - 执行
java -jar xxx.jar --spring.profiles.active=development
,可以观察到服务端口被设置为1111,也就是生产环境的配置(development)
外置文件
项目内部有配置文件,打成jar包的同级目录下也可以放置配置文件,属性相同的在项目启动时外部的会覆盖内部的属性,而不必修改重新打包
关于外置文件的加载优先级:
https://blog.csdn.net/wangmx1993328/article/details/81029619