gpt4 book ai didi

java - 在运行时用另一个属性文件覆盖默认属性

转载 作者:行者123 更新时间:2023-12-01 11:15:56 26 4
gpt4 key购买 nike

假设我有以下属性文件:

服务.属性服务1.属性service2.属性

我的应用程序将进行大量服务调用,并将使用默认属性文件 (service.properties)。但是,当 service1 进行调用时,我想用 service1.properties 覆盖它。同样,service2.properties 应该覆盖 service2 调用。

对于其余的服务调用,我仍然想使用 service.properties。

关于我应该如何做这件事的任何指示。

最佳答案

<bean id="service" class="com.concept.testing.Service">
<property name="url" value="${url.property}" />
<property name="user" value="${user.property}" />
<property name="password" value="password" />
<property name="app" value="Application" />
</bean>

你的场景对我来说只有在上面的场景中才有意义,你想说的是使用一种方法类 Service 的属性很少是恒定的,并且很少需要动态注入(inject)来自属性文件。由于所有服务调用的类都是相同的,所以您不想为service1和service2定义不同的属性和bean。

所以这里你可以使用spring中的配置继承,其定义如下:

<bean id="service1" parent="service">
<property name="url" value="${url1.property}" />
<property name="user" value="${user1.property}" />
</bean>

<bean id="service2" parent="service">
<property name="url" value="${url2.property}" />
<property name="user" value="${user2.property}" />
</bean>

现在您可以为 service1 调用和 service2 bean 注入(inject) service1 bean对于 service2 调用。他们的父类是相同的,但唯一的区别在于他们配置(即 url 和名称)。

关于java - 在运行时用另一个属性文件覆盖默认属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31823033/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com