一般情况下使用springboot时,都是遵循springboot的配置文件加载顺序配置好配置文件,但是也存在不同环境,我们在执行jar包时随时指定对应的配置文件,当然前者也有一些要说的,比如配置文件的加载顺序,不是这里要说的重点,后面会有机会整理一下。
SpringAppication运行时可以通过以下几种方式获取参数:
命令行参数
启动时命令参数指定如下:
java -jar project.jar --server.port = 9090
从命令行指定的配置项的优先级最高,不过你可以通过setAddCommandLineProperties来禁用它
SpringApplication.setAddCommandLineProperties(false);
外部配置文件
Spring程序会按优先级从下面这些路劲来加载application.properties的配置文件
当前目录下的/config目录
当前目录
classpath里的/config目录
calsspath根目录
因此,要外置配置文件就很简单了,在jar所在目录新建config文件夹,然后放入配置文件,或者直接放在配置文件在jar目录
具体这一块内容后续再专门整理一下。
自定义配置文件
不想使用application.properties做配置文件,可以通过下面方式指定加载的配置文件
java -jar project.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties
或者直接放在配置文件在jar目录
java -jar -Dspring.config.location=C:\Users\test.yml project.jar
或者代码中制定的方式
@SpringBootApplication
@PropertySource(value={"file:config.properties"})
public class SpringbootrestdemoApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootrestdemoApplication.class, args);
}
}
按照Profile读取配置文件
按不同的环境设置一个配置文件,例如:
dev环境 => application-dev.yml
prod环境 => application-prod.tml
然后在application.properties中指定用哪一个配置文件
spring.profiles.active = dev
也可在启动的时候用命令指定:
java -ar project.jar --spring.profiles.active = prod
评论区