如何将Class值设置为spring bean属性?

lis*_*sak 17 java spring class javabeans

嘿,用Class值设置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;
    }
}
Run Code Online (Sandbox Code Playgroud)

ska*_*man 30

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

<bean class="com.x.y.FilterJsonView">
   <property name="clazz" value="com.x.y.SomeClass"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

  • 我会说任何一个对你来说最合适的,以及你正在做的事情.总的来说,目标是通过找到"最佳"答案来帮助社区. (2认同)

laz*_*laz 9

只需提供课程名称.说你想clazz成为String.class:

<bean id="beanId" class="FilterJsonView">
    <property name="clazz" value="java.lang.String"/>
</bean>
Run Code Online (Sandbox Code Playgroud)

Spring有一个PropertyEditorSupport名为ClassEditor处理转换的实现.