注入弹簧中静态常数的值
2022-09-04 03:11:16
在我的一个类中有一个成员,我需要在 !也就是说,我们是否可以为此静态属性注入值?public static String
applicationContext.xml
在我的一个类中有一个成员,我需要在 !也就是说,我们是否可以为此静态属性注入值?public static String
applicationContext.xml
不可以,无法从 XML 上下文向静态字段注入值。
如果可以修改该类,则只需以下简单选择:
否则,您可以使用Spring的Java配置支持来完成此操作。
例如:
具有静态字段和 JUnit 方法的 Demo 类,该方法断言 Spring 容器将所需值注入到静态字段中:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("test-context.xml")
public class Demo {
public static String fieldOne;
@Test
public void testStaticField() {
assertEquals("test", fieldOne);
}
}
将上下文命名空间添加到应用程序Context和组件扫描元素:
<context:component-scan base-package="com.example" />
使用静态字段添加您的 Bean,如下所示:
@Configuration
public class JavaConfig {
@Bean
public Demo demo() {
Demo.fieldOne = "test";
return new Demo();
}
}
在这种情况下,JavaConfig 类必须位于组件扫描元素中声明的 com.example 包中。