2010-05-04 3 views

답변

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 패키지에 있어야합니다.