spring boot加载外部配置文件

2019-10-29  本文已影响0人  多关心老人
  1. 配置文件如果直接写在resources目录下,并且以application开头,则会自动被识别为spring boot的配置文件,图标会变化。如果写在别的目录,如resources/conf/下面,则是普通的文件图标。

  2. 如果配置文件是application-模块名.properties,spring boot会把“模块名”认为是profile,而“模块名”这些profile是不被spring boot认可的,需要手动在application.properties指定:spring.profiles.active=mybatis,redis,sms

  3. spring boot自动识别的配置文件,即使不配置@PropertySource,也会被扫描、注入

在生产环境要引用外部文件,如果用外部文件系统:

  1. 用配置中心
  2. 用profile,不过感觉profile不实用,代码里不可能有生产环境的配置。
  3. 在spring boot jar运行的目前下面,把配置文件当前目录下的/config目录或当前目录
  4. 如果配置文件都在resources下面,可以在启动spring boot的时候加 -Dspring.config.location=E:/conf/,注意要把所有的配置文件都存在于E:/conf/下面。 代码里直接用classpath:就行,不需要写file:。
    spring.config.location指定的路径一定要以/结尾,否则读取的是classpath下的文件,并不会读取到外部配置文件。
  5. 如果配置文件不是直接放在resources下面,如放在resources/conf下面,那么可以在
    @PropertySource(value = {"classpath:/conf/application-sms.properties", "file:${config_path}/application-sms.properties"}, ignoreResourceNotFound = true)
    后面的file:会覆盖前面的classpath:下面的配置。
上一篇下一篇

猜你喜欢

热点阅读