【问题标题】:Java Dependency Class is unable to access properties via System.getProperty() [duplicate]Java 依赖类无法通过 System.getProperty() 访问属性 [重复]
【发布时间】:2020-04-15 17:20:27
【问题描述】:

我有一个需要访问 -DmyProperty=foo 的 maven 依赖 jar。当我启动我的应用程序时,我的主项目可以访问 myProperty 值。但是,依赖 jar 中的类(也是一个 maven 项目)无法使用 System.getProperty() 访问这些类并返回 null 值。我的印象是类路径上的每个类都可以访问这些资源。有没有一种好方法可以将这些值传递回依赖项 jar?如果它有所作为,这两个项目都是建立在 spring 上的。

依赖jar使用:

import org.springframework.core.env.Environment;

@Autowired
private Environment environment;

public class myClass{
  ...
  public void myFunction() throws Throwable {
        System.out.println("System Env: " + environment.getProperty("myProperty"));
}

主项目导入上述项目并创建上述类的新实例并运行 myFunction 但在 environmnt.getProperty() 上出现空指针。

感谢任何帮助。

【问题讨论】:

  • 依赖项是否在同一个 spring 上下文中?
  • 为什么它需要访问系统属性?

标签: java spring maven-3


【解决方案1】:

你可以像下面这样使用 spring @Autowired 注解,但要确保你用@Component 或类似的注解你的类。

@Autowired
Environment env;

还要确保您的 bean 对扫描可见,组件扫描应该像这样启用

<context:component-scan base-package="<YOUR_PACKAGE>"/>

@ComponentScan(basePackages = {"<YOUR_PACKAGE>"} )

【讨论】:

  • 是的,我在依赖项 jar 中有一个 @ComponentScan,如果我单独运行依赖项 jar,它可以访问 -DmyProperty。但是当我向我的服务(导入依赖项 jar)提供 -DmyProperty 时......依赖项 jar 无法读取 -DmyProperty。
猜你喜欢
  • 2014-04-18
  • 2012-11-09
  • 1970-01-01
  • 1970-01-01
  • 2014-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多