spring boot加载外部配置文件
2019-10-29 本文已影响0人
多关心老人
-
配置文件如果直接写在resources目录下,并且以application开头,则会自动被识别为spring boot的配置文件,图标会变化。如果写在别的目录,如resources/conf/下面,则是普通的文件图标。
-
如果配置文件是application-模块名.properties,spring boot会把“模块名”认为是profile,而“模块名”这些profile是不被spring boot认可的,需要手动在application.properties指定:spring.profiles.active=mybatis,redis,sms
-
spring boot自动识别的配置文件,即使不配置@PropertySource,也会被扫描、注入
在生产环境要引用外部文件,如果用外部文件系统:
- 用配置中心
- 用profile,不过感觉profile不实用,代码里不可能有生产环境的配置。
- 在spring boot jar运行的目前下面,把配置文件当前目录下的/config目录或当前目录
- 如果配置文件都在resources下面,可以在启动spring boot的时候加 -Dspring.config.location=E:/conf/,注意要把所有的配置文件都存在于E:/conf/下面。 代码里直接用classpath:就行,不需要写file:。
spring.config.location指定的路径一定要以/结尾,否则读取的是classpath下的文件,并不会读取到外部配置文件。 - 如果配置文件不是直接放在resources下面,如放在resources/conf下面,那么可以在
@PropertySource(value = {"classpath:/conf/application-sms.properties", "file:${config_path}/application-sms.properties"}, ignoreResourceNotFound = true)
后面的file:会覆盖前面的classpath:下面的配置。