ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
619
619
EMPFEHLEN
-
17.09.08 22:57 #1
- Registriert seit
- May 2004
- Beiträge
- 684
Hallo,
ich habe eine Frage zum Spring IoC Container. Ist es möglich, die Property einer Bean auf einen Wert zu setzen, der wiederum eine Property einer anderen Bean ist?
Beispiel: Property "propA" von Bean "A" soll auf Property "propB" von Bean "B" gesetzt werden:
Code xml:1 2 3
<bean id="A" class="...MyClass"> <property name="propA" ref="B.propB" /> </bean>
Ist das irgendwie möglich? Oder MUSS hier "propB" selbst auch als Bean vorliegen?
Vielen Dank für Eure Hilfe
-
18.09.08 09:42 #2Code xml:
1 2 3 4 5
<bean id="A" class="...MyClass"> <property name="propA"> <bean factory-bean="yourBean" factory-method="getValue" /> </property> </bean>
Dem Beanelement innerhalb des property Elements kannst du auch per <constructor-arg /> Element Methodenparameter für die factory-method mitgeben.
REINHAUN!In theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
21.09.08 23:23 #3
- Registriert seit
- May 2004
- Beiträge
- 684
Hallo Olliver,
vielen Dank für Deine Antwort. Wenn ich das richtig verstehe, müsste der XML Code auf mein Beispiel angewendet dann so aussen?
Code xml:1 2 3 4 5
<bean id="A" class="...MyClass"> <property name="propA"> <bean factory-bean="B" factory-method="getPropB" /> </property> </bean>
Man nutzt damit quasi den Mechanismus ja aus, es wird ja gar keine Bean neu erzeugt, sondern das Ergebnis von "getProbB einfach als property "propA" für Bean "A" gesetzt.
Ist das so alles korrekt, oder mißverstehe ich etwas?
-
22.09.08 12:43 #4
Rrrrichiiiich...

REINHAUN!In theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
22.09.08 18:32 #5
- Registriert seit
- May 2004
- Beiträge
- 684
Ich habe es gerade einmal ausprobiert, so sieht mein echter Kontext für eine Bean aus:
Code xml:1 2 3 4 5
<bean id="simpleNoticeController" class="....SimpleNoticeController"> <property name="appWindow"> <bean factory-bean="uiController" factory-method="getAppWindow" /> </property> </bean>
"uiController" ist eine andere Bean, die in ihrer Initialisierungsmethode einen JFrame als Programmfenster erstellt und damit sein eigenes Property "appWindow" setzt.
Die obige Definition soll also die Property "appWindow" der Klasse "SimpleNoticeController" auf die Rückgabe der Methode "getAppWindow" der Bean "uiController" setzen, welche von Typ JFrame ist.
Spring gibt mir nun folgende Meldung aus:
Was für eine "matching bean" erwartet er denn da? Habe ich in meiner XML etwas falsch gemacht, oder das Prinzip generell falsch verstanden?Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [javax.swing.JFrame] is defined: Unsatisfied dependency of type [class javax.swing.JFrame]: expected at least 1 matching bean
Über Deine Hilfe würde ich mich sehr freuen
Danke!
-
22.09.08 18:44 #6
Strange, kommt da noch ein Beanname mit? Welche Bean will er denn erstellen? Der Setter von deinem SimpleNoticeController muss einen Parameter aufnehmen vom Rückgabetyp von getAppWindow auf deinem uiController. Passt das?
Gruß
OllieIn theory, there is no difference between theory and practice. In practice, there is!
www.olivergierke.de
-
22.09.08 19:54 #7
- Registriert seit
- May 2004
- Beiträge
- 684
Oh ich glaubs nicht, Schande über mich - bei der ganzen Diskussion um XML oder Annotaions in dem anderen Thread, den wir führen, habe ich doch tatsächlich im Code noch ein "@Resource" an dem "appWindow" Feld gehabt, und natürlich gibt es die Bean "appWindow" nicht, genau das sagt mir Spring hier.
Tut mir echt leid, und danke nochmal, nun klappt es
Ähnliche Themen
-
Wie starte ich Prozesse aus einer Session Bean?
Von sepan im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 1Letzter Beitrag: 08.03.10, 14:28 -
Bean-Variablen als Parameter einer Methode einer anderen Bean
Von mcdroemmel im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 0Letzter Beitrag: 25.06.09, 17:53 -
ClassCastException bei Aufruf einer Stateful Session Bean
Von Urmel103 im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 12Letzter Beitrag: 13.02.09, 19:03 -
JSF Managed Bean - Property Setzen
Von KarlRannseier im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 4Letzter Beitrag: 28.03.08, 17:07 -
Property will nicht im Property-Fenster erscheinen
Von yesso im Forum .NET ArchivAntworten: 2Letzter Beitrag: 29.03.05, 19:14





Zitieren
Login





