可以将一个属性值分配给其他属性文件中的另一个属性

时间:2013-08-02 09:48:31

标签: java spring spring-mvc properties

我有两个.properties个文件,其中每个文件的两个属性的值相同。所以我想把一个值引用到其他值,例如:

1.config.properties

 path= /opt/logs/bundle

2.default.properties

default =/opt/logs/bundle(与config.properties中的路径相同)

现在这里默认属性值与path相同,所以我想给出:

default = {path}

但在这里,我无法得到那条道路。任何人都可以帮助我。感谢

2 个答案:

答案 0 :(得分:0)

java中的Properties类没有引用其他属性的功能。如果您曾见过使用引用的.properties文件,则解释.properties文件的应用程序会在Properties类之上添加此功能。例如。如果您发现以{开头并以}结尾的值,则必须自行查找属性路径。

另一方面,当使用某个库的特定配置文件格式(如spring的bean.xml)时,该库可能在​​其格式中添加了引用。很有可能,你可以找到一个库,它在java的Properties工具之上添加引用,或者Spring已经包含了一些“你需要的东西”。

答案 1 :(得分:0)

在我的项目中,使用了EncryptablePropertySourcesPlaceholderConfigurer,然后使用了资源[]位置'其父母的属性' PropertiesLoaderSupport'已分配我要加载的每个属性文件。我想这就是我不会遇到任何错误的原因。

例如:

<bean id="frameworkPropertyPlaceholderConfigurer"
    class="org.jasypt.spring31.properties.EncryptablePropertySourcesPlaceholderConfigurer">
    <constructor-arg ref="stringEncryptor" />
    <property name="ignoreUnresolvablePlaceholders" value="true" />
    <property name="locations">
        <list>
            <bean parent="frameworkConfigResourceFactoryBean">
                <property name="resourceName" value="framework-config.properties" />
            </bean>
            <bean ................> </bean>
        </list>
    </property>
</bean>

在database-config.properties中:

 database.driver.class=com.mysql.jdbc.Driver
 database.connection.url=${database.connection.url}
 database.username=root
 database.password=${database.password}

同样在filter.properties中:

 database.connection.url=jdbc:mysql://localhost:3306/MySQLDBName?rewriteBatchedStatements=true
 database.password=root