如何将类值设置为弹簧豆属性?

2022-09-02 12:00:15

嘿,使用类值设置豆的属性的最佳方法是什么?关于 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

只需注入类名,Spring就会将其转换为对象,例如Class

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

答案 2

只需提供类名。说你想成为:clazzString.class

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

Spring有一个名为ClassEditorPropertyEditorSupport实现来处理转换。