外部jar中类的spring boot配置属性

Posted

技术标签:

【中文标题】外部jar中类的spring boot配置属性【英文标题】:spring boot configuration properties for a class in external jar 【发布时间】:2017-06-21 10:00:15 【问题描述】:

我有一个 jar 文件,它有下面的类来加载一些属性 -

@ConfigurationProperties(prefix = "common-list")
@Configuration
@Component
public class CommonConfig
...

在我的 spring boot 项目中,上面的 class/jar 是一个依赖项。 如何指定在我的项目中查找此属性“common-list”以加载的位置? 或 我是否需要修改类/jar,使用 PropertySource 注释指定在哪里查找这些公共列表值的属性文件?

我有以下行的 bootstrap.properties -

spring.application.name=xyz

配置服务器上的xyz.yaml

common-list:
...

通过查看我的 Spring Boot 应用程序的 env 属性,我可以看到文件已被拾取并加载。但是 CommonConfig 实例不会使用这些文件值进行初始化。 值组织正确,因为我通过在创建 jar 的同一项目中构建一个 spring boot 测试应用程序来测试它们(所有值都正确填充在 CommonConfig 实例中)。

更新(已解决) 问题是将我的对象错误地转换为 json 字符串,这导致建议进入默认路由而不是选择正确的值。

【问题讨论】:

【参考方案1】:

当组件扫描获取到这个CommonConfig 类时,ConfigurationProperties 注释将基本上注入在application.ymlapplication.properties 中找到的以前缀common-list. 开头的属性并设置它们。

查看 DZONE 文章 here。

【讨论】:

【参考方案2】:

我用分辨率更新了上面的帖子。 问题不在于加载配置属性,而是加载代码。

【讨论】:

以上是关于外部jar中类的spring boot配置属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring Boot linux 中向类路径提供外部配置资源(数据库属性和 XML 文件)

spring boot 外部配置 - profile 特定配置

Spring boot 梳理 - Spring Boot 属性配置和使用(转)

Spring Boot 3-外部配置

如何为非Spring Boot的Java应用程序指定外部配置文件

Spring Boot 属性配置