Spring-bean-Felder-Injektion
Mittels Spring IoC ermöglicht es, bean-Eigenschaften ausgesetzt über setter:
public class Bean {
private String value;
public void setValue(String value) {
this.value = value;
}
}
Und der bean-definition ist:
<bean class="Bean">
<property name="value" value="Hello!">
</bean>
Ist es bereits plugins/Klassen für das Spring-Framework, dass es ermöglicht direkt verfügbar-bean-Felder als Eigenschaften, ohne die Definition setter? So etwas wie dies mit der gleichen bean-definition:
public class Bean {
@Property
private String value;
}
Ich Verstand nicht, was Sie versuchen zu tun? Sie wollen zu injizieren Zeichenfolge in das Feld?
Nicht genau. Ich möchte aufzeigen Feld als eine Eigenschaft ohne einen Set-Methode.
Es ist eine gute Frage, denke ich. Spring MVC kann eine direkte Feld-Injektion für MVC-Befehl Objekte, so ist es sinnvoll zu prüfen, direkte Feld-Injektion für bean-Eigenschaften. Aber ich glaube nicht, dass es irgendeinen Weg dies zu tun ist im Frühjahr.
setter notwendig ist, denke ich, warum tun Sie müssen dies?
Ich möchte nur zu ersetzen, eine Reihe von öffentlichen Settern (die sind wirklich junk-Methoden) mit einem einfachen Annotationen überall dort, wo es sinnvoll ist.
Nicht genau. Ich möchte aufzeigen Feld als eine Eigenschaft ohne einen Set-Methode.
Es ist eine gute Frage, denke ich. Spring MVC kann eine direkte Feld-Injektion für MVC-Befehl Objekte, so ist es sinnvoll zu prüfen, direkte Feld-Injektion für bean-Eigenschaften. Aber ich glaube nicht, dass es irgendeinen Weg dies zu tun ist im Frühjahr.
setter notwendig ist, denke ich, warum tun Sie müssen dies?
Ich möchte nur zu ersetzen, eine Reihe von öffentlichen Settern (die sind wirklich junk-Methoden) mit einem einfachen Annotationen überall dort, wo es sinnvoll ist.
InformationsquelleAutor Vladimir | 2010-10-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie:
@Value
annotation und injizieren einer Eigenschaft (mithilfe von expression language)Über lombok -- bei diesem Projekt-in meinem Fall zu sein scheint, wie ein Gewehr auf dem Rad.
Lombok ist der Weg zu gehen. Einfach kommentieren Ihre privaten Felder mit @Setter und das ist es. Keine runtime-Abhängigkeit, die Sie gerade brauchen, lombok zur compile-Zeit und die generiert .class-Dateien werden über die setter-Methoden. Das problem ist nur, wenn Sie möchten, kommentieren Sie die Methode, mit so etwas wie @Erforderlich.
InformationsquelleAutor Bozho
Frühjahr unterstützt annotation-basierte Feld-Injektion out of the box für die JSR-250
@Resource
annotation. Frühjahr eigene@Autowired
und JSR 330's@Inject
auch arbeiten.Brauchen Sie nur fügen Sie die folgende Zeile zu Ihrer context.xml:
Referenz:
Konfiguration
@Autowired
und@Inject
@Resource
InformationsquelleAutor Sean Patrick Floyd
Was Sie fordern ist nicht möglich. Frühjahr abonniert Konvention über die Konfiguration. So erwartet es, es werden setter und Getter. Während die direkte Feld-Injektion ist möglich, mit Frühling und Frühjahr verwendet Reflektion, um dies zu erreichen, ist der Frühling nicht für das umkehren dieses Prozesses zu verwenden, Reflexion, auf Felder zuzugreifen, ohne setter oder Getter. Auch Spring-AOP-Implementierung erwartet, Methoden zu finden, zu strukturieren, es Proxys.
InformationsquelleAutor Robert Greathouse