Как установить значение класса в свойство spring bean?

Эй, какой лучший способ установить свойство bean со значением класса? Что касается конфигурации XML. Для bean:

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

Просто введите имя класса, а Spring преобразует его в объект Class для вас, например.

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

Ответ 2

Просто укажите имя класса. Предположим, что clazz String.class:

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

Spring имеет PropertyEditorSupport реализация, называемая ClassEditor, который обрабатывает преобразования.