Ich erstelle eine Web-App mit Spring 3 und möchte die Kraft der Spring Expression Language nutzen, habe aber ein Problem. Ich muss den Wert einer Eigenschaft für eine meiner Beans auf das Ergebnis eines Methodenaufrufs für eine andere Bean festlegen. Ich weiß, dass ich das tun kann, aber das Problem ist, dass das Ergebnis dieses Methodenaufrufs sich ändern kann, nachdem das Bean initialisiert wurde, und ich brauche diese Eigenschaft, um die Änderung widerzuspiegeln. Zum Beispiel:Aktualisieren Sie den Wert einer Spring-Bean-Eigenschaft mit SpEL
<beans>
...
<bean name="guestList" class="java.util.ArrayList"></bean>
<bean name="party" class="some.custom.class.Party">
<property name="numberOfGuests" value="#{guestList.size()}" />
</bean>
...
</beans>
Von dem, was ich sagen kann, ist das numberOfGuests
Feld das erste Mal, das party
Feld gesetzt zugegriffen wird. Aber nachdem auf das Feld party
zugegriffen wurde, kann sich die Anzahl der Gäste ändern und ich brauche das Feld numberOfGuests
, um das zu reflektieren. Gibt es eine Möglichkeit, das Feld numberOfGuests
in meiner App neu zu initialisieren, wenn der Wert aktualisiert werden muss?
Dies ist nur ein Beispiel und Zugriff auf die guestList
Bean direkt funktioniert nicht für meine spezifische Situation.
dies ist definitiv die einfachste (und bevorzugt!) Weg, es zu tun, aber die OP sagte: „Dies ist nur ein Beispiel und den Zugriff auf die Gästeliste Bean wird nicht direkt für meine spezifische Situation arbeiten.“ –
Sie haben Recht. Punkt genommen. Wir brauchen definitiv mehr Informationen. Was ist mit dem direkten Zugriff auf die 'guestList'-Bean falsch? –