복붙노트

[SPRING] Spring의 정적 상수 값 삽입

SPRING

Spring의 정적 상수 값 삽입

내 수업 중 하나에서 public static String 멤버가 있는데이 값을 applicationContext.xml에 설정해야합니다! 즉,이 정적 속성에 값을 삽입 할 수 있습니까?

해결법

  1. ==============================

    1.네,이 링크에 대한 예가 있습니다. http://planproof-fool.blogspot.com/2010/03/spring-setting-static-fields.html

    네,이 링크에 대한 예가 있습니다. http://planproof-fool.blogspot.com/2010/03/spring-setting-static-fields.html

  2. ==============================

    2.아니요, XML 컨텍스트에서 정적 필드에 값을 삽입 할 수 없습니다.

    아니요, XML 컨텍스트에서 정적 필드에 값을 삽입 할 수 없습니다.

    수업을 수정할 수 있다면 다음과 같은 간단한 선택을 할 수 있습니다.

    그렇지 않으면 Spring의 Java 구성 지원을 통해이를 수행 할 수있다.

    예 :

    정적 필드가있는 Demo 클래스와 Spring 컨테이너가 원하는 값을 정적 필드에 삽입한다고 주장하는 JUnit 메서드는 다음과 같습니다.

    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("test-context.xml")
    public class Demo {
    
        public static String fieldOne;
    
        @Test
        public void testStaticField() {
            assertEquals("test", fieldOne);     
        }
    }
    

    컨텍스트 네임 스페이스를 applicationContext 및 component-scan 요소에 추가합니다.

    <context:component-scan base-package="com.example" />
    

    다음과 같이 정적 필드를 사용하여 bean을 추가하십시오.

    @Configuration
    public class JavaConfig {
    
        @Bean
        public Demo demo() {
            Demo.fieldOne = "test";
    
            return new Demo();
        }
    }
    

    이 경우 JavaConfig 클래스는 component-scan 요소에 선언 된대로 com.example 패키지에 있어야합니다.

  3. from https://stackoverflow.com/questions/2763279/injecting-values-for-static-constants-in-spring by cc-by-sa and MIT license