Dynamisches erweitern des WebApplicationContext

16 views
Skip to first unread message

toxisch

unread,
Mar 22, 2010, 8:44:19 AM3/22/10
to Spring User Group Germany
Ist es möglich einem WebApplicationContext nachträglich zur Laufzeit
weitere Konfigurations-Dateien anzufügen? Und wenn ja , wie?
Hintergrund: Ich möchte während dem Start meiner Anwendung anhand
verschiedener Bedingungen entscheiden, ob eine AnwendungsContext
geladen wird, oder eben auch nicht.

Danke für eure Antworten!

Sam Brannen

unread,
Mar 23, 2010, 6:55:03 AM3/23/10
to Spring User Group Germany
> Ist es möglich einem WebApplicationContext nachträglich zur Laufzeit
> weitere Konfigurations-Dateien anzufügen? Und wenn ja , wie?

Jein, nachdem die WAC gestartet wurde geht das nicht. So was ist nur
moeglich, bevor refresh() auf die WAC aufgerufen wird.

> Hintergrund: Ich möchte während dem Start meiner Anwendung anhand
> verschiedener Bedingungen entscheiden, ob eine AnwendungsContext
> geladen wird, oder eben auch nicht.

Wenn du von der Root-WAC redest, dann koenntest du eine Erweiterung
des ContextLoaderListener schreiben. Damit waere es moeglich die
configLocations programmatisch zu setzen.

Wenn du von einer Child-WAC redest, dann kannst du DispatcherServlet
aehnlich erweitern.

> Danke für eure Antworten!

Bitte!

Sam

Eberhard Wolff

unread,
Mar 23, 2010, 8:51:26 AM3/23/10
to su...@googlegroups.com, Sam Brannen
Hi,

man kann ein System aus PropertyPlaceholderConfigurere, aliases und
beans bauen, die dann nur bei bestimmten Umgebungen initialisiert werden.

Der PropertyPlaceholderConfigurer müsste installiert werden, dann
benötigt man was wie das hier:


<alias name="lall.{environment}" alias="lall"/>

<bean id="lall.tomcat" lazy-init="true" />
<bean id="lall.se" lazy-init="true"/>


Abhängig vom Wert der Property environment bekommt man unter lall die
eine oder die andere Bean. Die nicht notwendige Bean wird nicht gebaut.

HTH,

Eberhard

Am 23.03.10 11:55, schrieb Sam Brannen:

> --
> Sie haben diese Nachricht erhalten, da Sie der Google Groups-Gruppe
> Spring User Group Germany beigetreten sind.
> Wenn Sie Nachrichten in dieser Gruppe posten möchten, senden Sie eine
> E-Mail an su...@googlegroups.com.
> Wenn Sie aus dieser Gruppe austreten möchten, senden Sie eine E-Mail an
> sugg+uns...@googlegroups.com.
> Besuchen Sie die Gruppe unter http://groups.google.com/group/sugg?hl=de,
> um weitere Optionen zu erhalten.
>

--
Eberhard Wolff
Principal Technologist
SpringSource - A division of VMware
Sitz der Gesellschaft:
VMware Global, Inc. - Freisinger Strasse 3 - 85716 Unterschleissheim
Geschäftsführer: Joanne Holloway, Tom Jurewicz
Amtsgericht München HRB 149743

http://www.springsource.com

Author, "Spring 2 - Framework für die Java Entwicklung"
http://www.spring-buch.de/

Founding Member Java Champions
https://java-champions.dev.java.net/

Mail: eberhar...@springsource.com
Skype: ebr.wolff
Blog: http://JandIandMe.blogspot.com/
Mailing List: http://www.springsource.com/newsletter

Oliver Gierke

unread,
Mar 23, 2010, 10:03:42 AM3/23/10
to Spring User Group Germany
Mir fallen noch zwei weitere Themen ein, die dazu interessant sein
könnten:

1. Wildcarded imports. Wenn du den ContextLoaderListener bzw. das
DispatcherServlet so konfigurierst, dass es alle Konfigurationsfiles
einsammelt die eine bestimmten Konvention genügen (z.B.
classpath*:META-INF/spring/*-context.xml) dann kannst du durch
geschicktes schneiden deiner Applikation dafür sorgen dass bestimmte
Beans eben nur gefunden werden, wenn bestimmer JARs im classpath
liegen.

2. BeanFactoryPostProcessor - in diesem Interface kannst du das
Konfigurationsmetamodell überarbeiten, d.h. BeanDefinitions
programatisch hinzufügen oder wegwerfen.

Gruß
Ollie

Reply all
Reply to author
Forward
0 new messages