springboot项目启动的时候参数无效的解决

springboot项目启动的时候参数无效

今天启动一个springboot项目发现启动的时候输入的参数都是不能生效,但是yaml文件的配置却生效了,排查了半天,最后发现原来启动类里面有问题,原代码如下

public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class);
    }
}

改动run方法的参数,添加args参数如下

public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

启动之后,指定参数即可生效。

springboot项目启动参数设置问题

Spring boot项目常用的几种启动方式

Maven启动指定Profile通过-P,如mvn spring-boot:run -P test,但这是Maven的Profile。

  • 如果要指定spring-boot的spring.profiles.active,则必须使用mvn spring-boot:run -Drun.profiles=test
  • 如果使用命令行直接运行jar文件,则使用java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar
  • 如果使用开发工具,运行Application.java文件启动,则增加参数–spring.profiles.active=test

war包部署方式

对于war包部署方式在启动类中需要做如下配置

public class TestApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(TestApplication.class);
    }
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的