Java 依赖类无法通过 System.getProperty() 访问属性

标签 java spring maven-3

我有一个 Maven 依赖项 jar,需要访问 -DmyProperty=foo 。当我启动应用程序时,我的主项目可以访问 myProperty 值。但是,依赖项 jar(也是一个 Maven 项目)中的类无法使用 System.getProperty() 访问这些类。并返回null值(value)。我的印象是类路径上的每个类都可以访问这些资源。有没有一种好方法可以将这些值传递回依赖项 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 @Autowired 注释,如下所示,但请确保使用 @Component 或类似的注释您的类。

@Autowired
Environment env;

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

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

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

关于Java 依赖类无法通过 System.getProperty() 访问属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61234754/

相关文章:

java - spring - 配置 spring 邮件

java - 何时在 Spring 中使用 ElementFactory 方法

java - Spring 启动 + LocalDate : "No primary or default constructor"

java - 在 Maven 中使用缓存 Artifact 来避免冗余构建?

Maven发布:prepare with NoClassDefFoundError while using git

java - 打开移位 : maven compiler error : Base64 can not find the symbol

java - 忽略 Android Nexus S EditText 设置 (2.3.4)

java - Tapestry 5.4 列出 webapp 文件夹中的所有图像

java - Maven 或不 Maven

java - 是否应该使用多线程来下载大量图像?