【问题标题】:Unable to get System variables in Spring BootSpring Boot 无法获取系统变量
【发布时间】:2015-09-22 10:40:48
【问题描述】:

我使用以下命令运行我的 Spring Boot 应用程序:

gradle -Dekiras="ekiras.com" bootRun

在 Spring Boot 应用程序中我有引导类

@Component
public class Bootstrap implements InitializingBean{

    @Autowired private Environment environment;

    @Override
    public void afterPropertiesSet() throws Exception { 

       System.out.println("###################"+System.getProperty("ekiras"));
}}

我得到的输出是:

##########################null

我在这里遗漏了什么吗?

【问题讨论】:

  • 我认为你不应该担心如何从你的构建工具(gradle)中添加属性。您应该专注于提供这些参数,就像在生产中提供它们一样(java -jar myjar.jar -Dekiras="ekiras.com"),并在 .properties 或 yaml 中放置一些默认值,以防万一运行应用时不要指定参数。

标签: spring gradle spring-boot


【解决方案1】:

这边:

gradle -Dekiras="ekiras.com" bootRun

您将 ekiras 属性传递给 gradle 脚本本身。您可以通过以下方式进行验证:

println System.properties['ekiras']

在构建脚本中。

要将属性传递给应用程序,您需要以下构造:

bootRun {
  jvmArgs = ['-Dekiras="ekiras.com"']
}

双引号" 是不必要的。当然你可以将属性传递给 gradle 脚本,然后使用 gradle 中读取的属性配置 bootRun 块。

【讨论】:

    猜你喜欢
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 2010-10-22
    • 2018-12-08
    • 2019-08-03
    • 2019-02-21
    相关资源
    最近更新 更多