问题:
我在软件中有3个部分:
客户端 A 服务
客户端 B 服务
目标 C 服务
我想从A和B
连接到C,我写了一个具有以下设置的库:
/src/main/java/pkg.../目标连接器.java
/src/main/java/pkg.../目标配置.java
/src/main/resources/应用程序开发属性
/src/main/resources/application-tst.properties
/src/main/resources/application-prd.properties
我的客户 A 和 B 都有自己的来源和属性:
/src/main/java/pkg.../Client{A/B}Service.java
/src/main/java/pkg.../Client{A/B}Config.java
/src/main/resources/应用程序开发属性
/src/main/resources/application-tst.properties
/src/main/resources/application-prd.properties
连接器的属性包含服务的一些登录信息,例如
target.url=https://....
target.usr=blablabla
target.key=mySHAkey
在目标配置中用于预配置连接器,例如
@Value("target.url")
String url;
@Value("target.usr")
String usr;
@Value("target.key")
String key;
@Bean
public TargetConnector connector() {
return new TargetConnector(url, usr, key);
}
现在,当我在客户端中使用连接器 jar 时,我可以通过软件包扫描找到配置。连接器类已加载,但问题是它不加载属性文件。
研究
我发现多个属性文件不能具有相同的名称(例如,客户端应用程序-{profile}.属性与来自连接器的应用程序冲突),因此我尝试将目标连接器的应用程序-{profile}.属性重命名为应用程序连接器-{profile}.属性。
仍然没有加载的属性(这是有道理的,因为我没有例如连接器开发配置文件,但我的配置文件只是命名为dev)。
此外,即使我尝试使用以下命令从连接器显式加载其中一个属性文件:
@PropertySource({"classpath*:application-connector-dev.properties"})
找不到
问题
我的问题实际上是3分层的:
如何在依赖项 jar 中加载属性文件?
如果属性文件的名称与 application.properties 的名称不同,如何加载属性文件的分析版本?例如,应用程序连接器属性
如何组合问题 1 和 2 中的答案,将属性的分析版本加载到 jar 中?
如果需要进一步解释,请询问。
答
我选择了接受的答案中给出的方法。我刚刚为包含所需值的 dev,tst,prd 配置文件创建了 3 个配置,并使用正确的配置文件注释了配置文件。
白衣染霜花
侃侃无极
大话西游666
相关分类