10

多くの値を持つプロパティ ファイルがあり、Bean 構成ファイルに個別にリストしたくありません。例えば:

<property name="foo">
    <value>${foo}</value>
</property>
<property name="bar">
    <value>${bar}</value>
</property>

等々。

私はすべてを完全にjava.util.Propertiesまたはそれ以下として注入することを想像していjava.util.Mapます。そうする方法はありますか?

4

5 に答える 5

11

Java Config の場合は、次を使用しますPropertiesFactoryBean

@Bean
public Properties myProperties() {
    PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean();
    propertiesFactoryBean.setLocation(new ClassPathResource("/myProperties.properties"));
    Properties properties = null;
    try {
        propertiesFactoryBean.afterPropertiesSet();
        properties = propertiesFactoryBean.getObject();

    } catch (IOException e) {
        log.warn("Cannot load properties file.");
    }
    return properties;
}

次に、プロパティ オブジェクトを設定します。

@Bean
public AnotherBean myBean() {
    AnotherBean myBean = new AnotherBean();
    ...

    myBean.setProperties(myProperties());

    ...
}

これがJava Configの方法に興味のある人に役立つことを願っています.

于 2013-03-04T15:08:02.947 に答える
2

PropertyOverrideConfigurerメカニズムで可能です:

<context:property-override location="classpath:override.properties"/>

プロパティ ファイル:

beanname1.foo=foovalue
beanname2.bar.baz=bazvalue

メカニズムはセクション3.8.2.2 で説明されています。例: PropertyOverrideConfigurer

于 2011-05-09T15:21:26.457 に答える