내 수업 중 하나에 public static String
회원이 있으며 applicationContext.xml
에이 값을 설정해야합니다! 즉,이 정적 속성에 값을 삽입 할 수 있습니까?스프링에서 정적 상수 값 입력하기
14
A
답변
11
4
아니, 그것은 당신의 XML 컨텍스트에서 정적 필드에 값을 삽입하는 것은 불가능에 대한 예제가있다.
- 생성자/세터/init 메소드를 추가 static 수정을 제거하고 필드
- 위를 주입/@ 자동으로 묶어 @ 추가 : 당신이 클래스를 수정할 수있는 경우
, 다음과 같은 간단한 선택 사항이 있습니다.
그렇지 않으면 Spring의 Java 구성 지원으로 할 수 있습니다.
예 :
정적 필드와 Spring 컨테이너는 정적 필드에 원하는 값을 주입 주장 JUnit의 방법과 데모 클래스 :
@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" />
는이 같은 정적 필드와 콩을 추가
@Configuration
public class JavaConfig {
@Bean
public Demo demo() {
Demo.fieldOne = "test";
return new Demo();
}
}
이 경우 JavaConfig 클래스는 component-scan 요소에 선언 된대로 com.example 패키지에 있어야합니다.