springboot以jar运行时参数传递
spring boot项目我们都习惯以内嵌tomcat方式、直接打包成jar,运行时使用:
java -jar XXX.jar --spring.profiles.active=alpha
以此激活xxx-alpha.properties文件。
但是--spring.profiles.active=alpha参数到底是怎么传递进spring boot里面启动的呢?
它是以下面的方式传递参数进去的。
1 @SpringBootApplication 2 public class CloudGitConfigServerApplication { 3 4 public static void main(String[] args) { 5 args = new String[1]; 6 args[0] = "--spring.profiles.active=alpha"; 7 SpringApplication.run(CloudGitConfigServerApplication.class, args); 8 } 9 }
因此,如果有两个参数,可以用逗号隔开,变化一个数组参数传递进去。
@SpringBootApplication @EnableEurekaServer public class FirstServer { public static void main(String[] args) { // 读取控制台输入,决定使用哪个profiles Scanner scan = new Scanner(System.in); String profiles = scan.nextLine(); new SpringApplicationBuilder(FirstServer.class).profiles(profiles).run(args); } }