복붙노트

[SPRING] 클래스 값을 Spring bean 속성으로 설정하는 방법은 무엇입니까?

SPRING

클래스 값을 Spring bean 속성으로 설정하는 방법은 무엇입니까?

이봐, 클래스 값으로 빈의 속성을 설정하는 가장 좋은 방법은 무엇입니까? XML 구성에 관한. 이런 콩의 경우 :

public class FilterJsonView extends MappingJacksonJsonView {

    private Set<String> filteredAttributes;
    private Class clazz;

    public Set<String> getFilteredAttributes() {
        return filteredAttributes;
    }

    public void setFilteredAttributes(Set<String> filteredAttributes) {
        this.filteredAttributes = filteredAttributes;
    }

    public Class getClazz() {
        return clazz;
    }

    public void setClazz(Class clazz) {
        this.clazz = clazz;
    }
}

해결법

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

    1.그냥 클래스 이름을 삽입하면, Spring은 그것을 클래스 객체로 변환 할 것입니다.

    그냥 클래스 이름을 삽입하면, Spring은 그것을 클래스 객체로 변환 할 것입니다.

    <bean class="com.x.y.FilterJsonView">
       <property name="clazz" value="com.x.y.SomeClass"/>
    </bean>
    
  2. ==============================

    2.클래스 이름을 입력하기 만하면됩니다. clazz를 String.class로하고 싶다고합시다.

    클래스 이름을 입력하기 만하면됩니다. clazz를 String.class로하고 싶다고합시다.

    <bean id="beanId" class="FilterJsonView">
        <property name="clazz" value="java.lang.String"/>
    </bean>
    

    Spring에는 변환을 처리하는 ClassEditor라는 PropertyEditorSupport 구현이 있습니다.

  3. from https://stackoverflow.com/questions/5834311/how-to-set-class-value-to-spring-bean-property by cc-by-sa and MIT license