参考https://my.oschina.net/u/3714931/blog/1608944
两种等价方式,一种main函数参数,一种虚拟机参数(作用是配置一些环境变量,System.getProperty(“propertyName”)取)。
$ java -jar test-0.0.1-SNAPSHOT.jar --testKey=HelloWorldFromCommandLine
$ java -DtestKey=HelloWorldFromCommandLine -jar test-0.0.1-SNAPSHOT.jar
默认情况下,SpringApplication
会将所有命令行配置参数(以'--'开头,比如--server.port=9000
)转化成一个property
,并将其添加到Spring Environment
中,命令行属性总是优先于其他属性源。
如果不想将命令行属性添加到Environment
,你可以使用SpringApplication.setAddCommandLineProperties(false)
来禁用它们。
如果不喜欢将application.properties
作为配置文件名,你可以通过指定spring.config.name
环境属性来切换其他的名称,也可以使用spring.config.location
环境属性引用一个明确的路径(目录位置或文件路径列表以逗号分割)。
$ java -jar myproject.jar --spring.config.name=myproject
或
$ java -jar myproject.jar --spring.config.location=classpath:/default.properties,classpath:/override.properties