【问题标题】:What is systemProperties in Spring and where to find it?Spring 中的 systemProperties 是什么以及在哪里可以找到它?
【发布时间】:2019-01-30 19:28:00
【问题描述】:

我正在阅读Spring In Action 的书,有一个例子:

public BlankDisc(@Value("#{systemProperties['disc.title']}" String title){
}

但是这里的systemProperties 是什么以及在哪里声明呢?我以为是application.properties 文件并在那里添加了disc.title=Beatles。但是在创建 bean 时,title 变量的值是 null。顺便说一句,如果我使用@Value("${disc.title}"),我可以注入disc.title 的值。

【问题讨论】:

  • SystemProperties 这里是在启动任何 java 进程时使用 -D 标志定义的正常系统属性。您所看到的只是引用它的 spring 简写。

标签: java spring spring-el system-properties


【解决方案1】:

这是在启动 jar 时将设置的属性,例如“java -Dproperty.name="value" -jar app.jar”

【讨论】:

  • 是否可以在 SPEL 中引用应用程序属性中定义的属性?
【解决方案2】:

例如,如果您运行应用程序java -jar app.jar -Dmy.param=myParam

然后你就可以创建bean了

@Bean
public String myParam(){
   return System.getProperty("my.param");
}

并通过@Autowiere注入

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 2010-09-16
    • 2017-01-08
    相关资源
    最近更新 更多