16


Spring Javaconfig を使用してプロパティ ファイルを java.util.Properties フィールドに直接ロード/自動配線する方法を教えてください。

ありがとう!

後で編集 - まだ答えを探しています: Spring JavaConfig を使用してプロパティ ファイルを java.util.Properties フィールドに直接ロードすることは可能ですか?

4

6 に答える 6

12

XML ベースの方法:

春の設定で:

<util:properties id="myProperties" location="classpath:com/foo/my-production.properties"/>

あなたのクラスで:

@Autowired
@Qualifier("myProperties")
private Properties myProperties;

JavaConfig のみ

注釈があるようです:

@PropertySource("classpath:com/foo/my-production.properties")

これでクラスに注釈を付けると、ファイルから環境にプロパティがロードされます。次に、Environment をクラスに自動配線して、プロパティを取得する必要があります。

@Configuration
@PropertySource("classpath:com/foo/my-production.properties")
public class AppConfig {

@Autowired
private Environment env;

public void someMethod() {
    String prop = env.getProperty("my.prop.name");
    ...
}

それらを Java.util.properties に直接注入する方法がわかりません。ただし、ラッパーとして機能するこの注釈を使用するクラスを作成し、その方法でプロパティを構築することもできます。

于 2013-03-13T15:03:21.743 に答える
5

を宣言しPropertiesFactoryBeanます。

@Bean
public PropertiesFactoryBean mailProperties() {
    PropertiesFactoryBean bean = new PropertiesFactoryBean();
    bean.setLocation(new ClassPathResource("mail.properties"));
    return bean;
}

レガシーコードには次の構成がありました

<bean id="mailConfiguration" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="location" value="classpath:mail.properties"/>
</bean>

上記のように、それを Java 構成に変換するのは非常に簡単です。

于 2015-09-30T10:07:15.147 に答える
2

これは古いテーマですが、より基本的な解決策もあります。

@Configuration
public class MyConfig {
    @Bean
    public Properties myPropertyBean() {
        Properties properties = new Properties();
        properties.load(...);
        return properties;
    }
}
于 2014-12-29T13:08:19.733 に答える
1

xml 構成を使用してプロパティを直接注入するこのアプローチもあります。コンテキストxmlにはこれがあります

<util:properties id="myProps" location="classpath:META-INF/spring/conf/myProps.properties"/>

そしてJavaクラスはただ使用します

@javax.annotation.Resource
private Properties myProps;

出来上がり!ロードします。Spring は、xml の 'id' 属性を使用して、コード内の変数の名前にバインドします。

于 2013-10-01T12:23:32.167 に答える