私のクラスの1つにpublic static String
メンバーがあり、この値をapplicationContext.xml
に設定する必要があります。つまり、この静的プロパティに値を挿入することは可能ですか?
いいえ、XMLコンテキストから静的フィールドに値を挿入することはできません。
クラスを変更できる場合は、次の簡単な選択肢があります。
それ以外の場合は、SpringのJava構成サポートを使用して実行できます。
例:
静的フィールドと、Springコンテナが必要な値を静的フィールドに挿入することを表明するJUnitメソッドを持つDemoクラス:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("test-context.xml")
public class Demo {
public static String fieldOne;
@Test
public void testStaticField() {
assertEquals("test", fieldOne);
}
}
ApplicationContextおよびcomponent-scan要素にコンテキスト名前空間を追加します。
<context:component-scan base-package="com.example" />
次のような静的フィールドを使用してBeanを追加します。
@Configuration
public class JavaConfig {
@Bean
public Demo demo() {
Demo.fieldOne = "test";
return new Demo();
}
}
この場合、JavaConfigクラスは、component-scan要素で宣言されているcom.exampleパッケージに含まれている必要があります。