Klar geht auch, warum nicht.
Dann muß die Entscheidung, ob bestimmte Beans dabei sein sollen oder nicht, aber außerhalb getroffen werden,
oder du verwirfst den Kontext dann wieder und baust einen neuen, der dann die richtigen XMLs reinzieht.
Nicht nur Perl kennt mehr als einen Weg, etwas zu tun.
Ich denke aber auch dass bei den geposteten Codebeispielen die Spring-Kenner gerade kopfschüttelnd wegsehen.
Ich kann mir gut vorstellen dass das nicht gerade die Art ist, in der Spring verwendet werden sollte.
Oder warum kann das Szenario sonst nicht einfacher ausgedrückt werden?
Ich will nochmal auf Ollies letztes Post zu sprechen kommen (falls Du noch mitliest...)
Ollie hat gesagt.:
Kann man. Was machst du allerdings in einer Webapplikation? Da hast du nur wenig Einfluss auf die ApplicationContext-Implementierung bzw. -Auswahl. Testbarkeit ist auch so eine Sache. Eine Klasse kannst du testen. Einem Client aber vorzugeben nicht nur in welcher Reihenfolge Konfigurationsdateien geladen werden sollen, sondern auch noch, welche Datei in welchen AppContext geladen werden muss, der dann parent von welchem ist? Das klingt nicht danach, als wäre das sehr robust.
Also bei einer Webapplikation wird der ApplicationContext vom Servlet-Container vorgegeben?
Dir gehts hier also eher um die Allgemeinheit des Ansatzes, um einem ApplicationContext nachträglich zu verändern - macht Sinn.
Den Hinweis zur Testbarkeit hingegen verstehe ich nicht. Der Client sieht von dem ganzen Mist ja nichts - er bekommt eine Instanz von ApplicationContext in die Hand gedrückt, und gut ist. Wenn der Client jetzt das Casten anfängt (wie im Beispiel von mir weiter unten) dann ist auch der Client selbst schuld, wenn das irgendwann schief geht. Der einzige, der was zu testen hätte, ist DarthShader, der einfach gucken muß, ob bei bestimmten Konfigurationen bestimmte Beans vorhanden sind oder nicht. Vermutlich habe ich da noch was nicht verstanden... *sigh*
NB SCNR Wann werden eigentlich neben Vertex-, Pixel-, Geometry-, Hull-, und Domainshadern die DarthShader ausgeführt?
*duck und wech*