spring boot 使用外部配置文件

一、springboot 启动时加载  application.properties的优先级

1.当前目录的./config目录

2.当前目录

3. classpath /config package

4.The classpath root


二、配置实践

       一般情况下把application.properties放在当前路径(jar包所在路径)的config目录下启动时会优先于工程内不的classpath下的application.properties。

  •  使用 --spring.config.location参数定制路径,比如

 
  
  1.  java -jar springboottest-0.0.1-SNAPSHOT.jar --spring.config.location=file:./config8888/

  ,这时springboot会优先加载/config8888/下的application.properties。

  • 配合--spring.profiles.active可以使用不同profile来区分环境。使用profile时配置文件格式如下application-{profile}.properties。

比如我们在./config8888/下新建application-dev.properties和application-prod.properties,server.port参数分别为8888和8889。

 
  
  1. echo "server.port=8888" > ./config8888/application-dev.properties
  2. echo "server.port=8889" > ./config8888/application-prod.properties

分别启动应用

 
  
  1. java -jar springboottest-0.0.1-SNAPSHOT.jar --spring.config.location=file:./config8888/ --pring.profiles.active=dev
  2. java -jar springboottest-0.0.1-SNAPSHOT.jar --spring.config.location=file:./config8888/ --spring.profiles.active=prod

应用端口分别为8888和8889

  • 配合spring.config.name参数可以修改配置文件的前缀。

    比如在./config8888/新建文件myproject-dev.properties和myproject-prod.properties文件,server.port参数分别为9888和9889。

  •  
         
    1. echo "server.port=9888" > ./config8888/myproject-dev.properties
    2. echo "server.port=9889" > ./config8888/myproject-prod.properties
    分别启动应用

  •  
         
    1. java -jar springboottest-0.0.1-SNAPSHOT.jar --spring.config.name=myproject --spring.config.location=file:./config8888/ --spring.profiles.active=dev
    2. java -jar springboottest-0.0.1-SNAPSHOT.jar --spring.config.name=myproject --spring.config.location=file:./config8888/ --spring.profiles.active=prod

    端口好分别为9888和9889


你可能感兴趣的:(springboot)