How to set Class value to spring bean property?

孤街浪徒 提交于 2019-11-30 22:01:36

问题


Hey, what is the best way to set a bean's property with Class value ? Regarding XML configuration. For a bean like this :

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:


Just inject the class name, and Spring will convert it to a Class object for you, e.g.

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



回答2:


Just supply the class name. Say you want clazz to be String.class:

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

Spring has a PropertyEditorSupport implementation called ClassEditor that handles the conversions.



来源:https://stackoverflow.com/questions/5834311/how-to-set-class-value-to-spring-bean-property

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!