【问题标题】:How to initialize beans in imported jar with properties from application properties如何使用应用程序属性中的属性初始化导入的 jar 中的 bean
【发布时间】:2019-04-24 02:53:56
【问题描述】:

我有一个导入一个 jar 的 spring 应用程序。 例如,在 jar 中,有一个用 @Configuration 注释的 bean,它有一些用 @Value 注释的字段。

如果我将 jar 导入我的应用程序,在应用程序中提供 app.properties 文件(不在导入的 jar 中),这些值如何用于初始化 bean 中的字段? 当我启动一个应用程序时,我收到了消息:

原因:java.io.FileNotFoundException:类路径资源[app.properties]无法打开,因为它不存在

我在导入的 jar 中的 bean 看起来像:

@Configuration
@PropertySource("classpath:app.properties")
public class SomeConfig {
    @Value("${some.name}")
    private String field;
    ...
}

app.propeties 文件在导入的 jar 中时没有问题。

【问题讨论】:

  • 它在您的应用程序中的什么位置?它必须在类路径上,它在类路径(jar 或文件)上的获取方式并不重要。

标签: java spring import jar properties


【解决方案1】:

您可以尝试使用@PropertySource("classpath:/app.properties") 或使用文档中描述的占位符 https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/PropertySource.html

【讨论】:

  • 我从 Idea 运行应用程序。该应用程序位于带有包装的maven项目中:pom(项目中的顶级模块)。一旦我将应用程序移动到带有包装罐的新子模块就可以了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-06
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 2012-11-25
  • 1970-01-01
相关资源
最近更新 更多