都知道,springboot项目是可以通过java -jar来执行的,内嵌比如tomcat的服务。
那么有时我们会看到如下命令
java -jar test.jar --server.port=8081
像这种看样子他启动的端口就是8081了,
然后我们也可以在配置文件中进行配置:
server.port=8081
通过配置文件启动,他的启动端口也是8081,
也就是说,在执行java -jar的时候,后面带的参数和在配置文件中所配置的效果是一样的,它都会把它独到内存中赋值给配置类。
比如下面这个命令:
java -jar test.jar --server.port=8081 --server.servlet.context-path=/project/
那么他就等同于在springboot项目中如下配置:
server.port=8081
server.servlet.context-path=/project/
所以有时候对于一些不确定的参数,我们就无需写在配置文件中,修改了又从新打包,
而是可以在执行的时候,临时指定参数,
这个还是很有用的
当然,如果你想就写在配置文件中,不希望其他人在执行的时候随意修改参数,那么也是可以对其禁用的:
SpringApplication springApplication = new SpringApplication();
// 将下面这个成员属性设置为false,那么他就不回会读取命令行的参数了
springApplication.setAddCommandLineProperties(false);
springApplication.run(Application.class, args);