Ответ 1
да есть пример по этой ссылке http://planproof-fool.blogspot.com/2010/03/spring-setting-static-fields.html
В одном из моих классов есть член public static String
, и мне нужно установить это значение в applicationContext.xml
! То есть, возможно ли нам ввести значение для этого статического свойства?
да есть пример по этой ссылке http://planproof-fool.blogspot.com/2010/03/spring-setting-static-fields.html
Нет, невозможно вставить значение в статическое поле из вашего XML-контекста.
Если вы можете изменить класс, у вас есть следующие простые варианты:
В противном случае вы можете сделать это с помощью поддержки конфигурации Java Spring.
Пример:
Класс Demo со статическим полем и методом JUnit, который утверждает, что контейнер Spring вставляет требуемое значение в статическое поле:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("test-context.xml")
public class Demo {
public static String fieldOne;
@Test
public void testStaticField() {
assertEquals("test", fieldOne);
}
}
Добавьте пространство имен контекста в элемент applicationContext и компонент:
<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, как это указано в элементе проверки компонента.