Spring Boot 具有相当复杂的环境变量和配置属性管理。
一般来说,您可以使用 -DargumentName 传递参数。 例如:
-DargumentName="value1"
然后在您的 Spring Boot 应用程序中,您可以通过执行以下操作来检索该值:
@Value("${argumentName}") private String myVariable
但是您也可以使用更复杂的方式来完成它,使用 @Component Bean,如下例所示:
@Component
class SampleComponent {
private static final Logger log = LoggerFactory.getLogger(SampleComponent.class);
@Autowired
public SampleComponent(ApplicationArguments args) {
boolean option = args.containsOption("myoption");
if (option) log.info("You have included myoption!");
List<String> _args = args.getNonOptionArgs();
log.info("Extra args ...");
if (!_args.isEmpty()) _args.forEach(file -> log.info(file));
}
}
当您执行 args.containsOption(“myoption”) 时,它将期望参数如下:
$ ./mvnw spring-boot:run -Drun.arguments="--myoption"
传递参数的另一种可能方式也是这样:
$ ./mvnw spring-boot:run -Drun.arguments="arg1,arg2"
另一种选择是使用 org.springframework.core.env.Environment 来检索参数。 例子:
java -jar app.jar --myproperty=123
在应用程序调用中:
import org.springframework.core.env.Environment;
@Autowired private Environment env;
String someProperty = env.getProperty("myproperty");
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
内容来源于网络,如有侵权,请联系作者删除!