外部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.yml
或application.properties
中找到的以前缀common-list.
开头的属性并设置它们。
查看 DZONE 文章 here。
【讨论】:
【参考方案2】:我用分辨率更新了上面的帖子。 问题不在于加载配置属性,而是加载代码。
【讨论】:
以上是关于外部jar中类的spring boot配置属性的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Spring Boot linux 中向类路径提供外部配置资源(数据库属性和 XML 文件)
spring boot 外部配置 - profile 特定配置
Spring boot 梳理 - Spring Boot 属性配置和使用(转)