如何在Spring Boot中获取命令行参数?

@SpringBoot" title="SpringBoot">SpringBootApplication

public class CommandLinetoolApplication {

@Value("${person.name}")

private String name;

public static void main(String... argv) {

SpringApplication.run(CommandLinetoolApplication.class, argv);

}

}

我正在使用eclipse,因此将运行配置设置为

但是,当运行我的应用程序时,出现异常,因为“无法解析值“ $ {person.name}”中的占位符“ person.name””

回答:

这段代码可以正常工作(Spring Boot 2.1.4):

@SpringBootApplication

public class DemoApplication implements ApplicationRunner

{

@Value("${person.name}")

private String name;

public static void main( String[] args )

{

SpringApplication.run( DemoApplication.class, args );

}

@Override

public void run( ApplicationArguments args ) throws Exception

{

System.out.println( "Name: " + name );

}

}

命令行:

mvn spring-boot:run -Dspring-boot.run.arguments=--person.name=Test

输出:

  .   ____          _            __ _ _

/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

\\/ ___)| |_)| | | | | || (_| | ) ) ) )

' |____| .__|_| |_|_| |_\__, | / / / /

=========|_|==============|___/=/_/_/_/

:: Spring Boot :: (v2.1.4.RELEASE)

2019-04-28 22:51:09.741 INFO 73751 --- [ main] com.example.demo.DemoApplication : Starting DemoApplication on xxx-MacBook-Pro.local with PID 73751 (/Users/strelok/code/demo-sb/target/classes started by strelok in /Users/strelok/code/demo-sb)

2019-04-28 22:51:09.745 INFO 73751 --- [ main] com.example.demo.DemoApplication : No active profile set, falling back to default profiles: default

2019-04-28 22:51:10.943 INFO 73751 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 16.746 seconds (JVM running for 23.386)

Name: Test

以上是 如何在Spring Boot中获取命令行参数? 的全部内容, 来源链接: utcz.com/qa/431337.html

回到顶部