springboot以jar运行时参数传递

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);
    }
}

 

posted @ 2018-08-06 19:36  何其小静  阅读(1746)  评论(0编辑  收藏  举报