В одном из моих классов существует a public static String
участник и я должны установить это значение в applicationContext.xml
! таким образом, для нас действительно ли возможно ввести значение для этого статического свойства?
да, по этой ссылке есть пример http://planproof-fool.blogspot.com/2010/03/spring-setting-static-fields.html
Нет, невозможно ввести значение в статическое поле из вашего XML-контекста.
Если вы можете изменить класс, у вас есть следующие простые варианты:
В противном случае вы можете сделать это с помощью поддержки конфигурации Java в Spring.
Пример:
Демо-класс со статическим полем и методом 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, как объявлено в элементе component-scan.