gpt4 book ai didi

java - 在 Spring 中读取 2 个具有相同变量名的属性文件

转载 作者:搜寻专家 更新时间:2023-11-01 01:42:22 26 4
gpt4 key购买 nike

我正在使用我的 Spring xml 中的以下条目读取属性文件。

<context:property-placeholder 
location="classpath:resources/database1.properties,
classpath:resources/licence.properties"/>

我正在使用 xml 条目或使用 @Value 注释将此值注入(inject)变量。

<bean id="myClass" class="MyClass">
<property name="driverClassName" value="${database.driver}" />
<property name="url" value="${database.url}" />
<property name="name" value="${database.name}" />
</bean>

我想添加一个新的属性文件 (database2.properties),它有几个与 database1.properties 相同的变量名。

database1.properties:

database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://192.168.1.10/
database.name=dbname

database2.properties:

database.url=jdbc:mysql://192.168.1.50/
database.name=anotherdbname
database.user=sampleuser

您可以在两个属性文件中看到一些属性变量具有相同的名称,例如 database.urldatabase.name

Is it possible to inject database.url of database2.properties?

Or I have to change variable names?

谢谢。

最佳答案

您可以通过配置两个 PropertyPlaceholderConfigurer 来实现.通常只有一个实例提供所有属性,但是,如果您更改 placeholderPrefix你可以使用两个实例,比如

<bean id="firstPropertyGroup" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:resources/database1.properties,
classpath:resources/licence.properties" />
<property name="placeholderPrefix" value="${db1."/>
</bean>

<bean id="secondPropertyGroup" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations" value="classpath:resources/database2.properties" />
<property name="placeholderPrefix" value="${db2."/>"
</bean>

然后您将访问您的属性,如 ${db1.database.url}${db2.database.url}

关于java - 在 Spring 中读取 2 个具有相同变量名的属性文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29668401/

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