20 Stimmen

Wie man Klasse Wert zu Frühling Bean-Eigenschaft festlegen?

Hey, was ist der beste Weg, um eine Bean-Eigenschaft mit Klassenwert zu setzen? Bezüglich der XML-Konfiguration. Für eine Bohne wie diese :

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;
    }
}

32voto

skaffman Punkte 389758

Injizieren Sie einfach den Klassennamen, und Spring wandelt ihn in eine Class Objekt für Sie, z.B.

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

9voto

laz Punkte 27769

Geben Sie einfach den Klassennamen an. Sagen wir, Sie wollen clazz zu sein String.class :

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

Der Frühling hat eine PropertyEditorSupport Implementierung genannt ClassEditor der die Konvertierungen durchführt.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X