Ich muss Dispatcher Servlet und seine Konfigurationsdateien dynamisch laden. Ich betrachte das Konzept des Injizierens von Dispatcher-Servlet unter Verwendung von webapplicationinitializer, eine sehr neue Entwicklung im Frühjahr. Das folgende Dokument gibt einen Überblick: http://static.springsource.org/spring/docs/3.1.x/javadoc-api/org/springframework/web/WebApplicationInitializer.htmlInject Dispatcher Servlet mit Webapplicationinitializer in Springmvc
Ich versuche, eine grundlegende Einrichtung zu tun und es funktioniert einfach nicht. Ich bin nicht in der Lage zu verstehen, wo ich mich von der traditionellen Frühlingsentwicklung abwenden sollte. Kann mir jemand ein Beispiel dafür geben, wie man diesen neuen Mechanismus benutzt? Ich habe den folgenden Code:
public class MyWebAppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) {
// Create the 'root' Spring application context
AnnotationConfigWebApplicationContext rootContext =
new AnnotationConfigWebApplicationContext();
rootContext.register(AppConfig.class);
// Manage the lifecycle of the root application context
container.addListener(new ContextLoaderListener(rootContext));
// Create the dispatcher servlet's Spring application context
AnnotationConfigWebApplicationContext dispatcherContext =
new AnnotationConfigWebApplicationContext();
dispatcherContext.register(DispatcherConfig.class);
// Register and map the dispatcher servlet
ServletRegistration.Dynamic dispatcher =
container.addServlet("dispatcher", new DispatcherServlet(dispatcherContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
Außerdem, wenn wir dynamisch Dispatcher Servlet injizieren, bedeutet es, dass Dispatcher Servlet Lasten während des Web-Container (Tomcat) Startup?
Ich weiß aus Erfahrung, dass "WebApplicationInitializer" funktioniert. Kannst du "* einfach nicht arbeiten" erklären? –
@TomaszNurkiewicz Danke für den Kommentar. Ich bin nicht in der Lage, grundlegende Beispiel selbst zu konfigurieren. Ich habe ContextLoaderListener in web.xml konfiguriert. In der Dokumentation wird erwähnt, dass webapplicationinitializer als normale Klasse verwendet werden kann. Also habe ich Code in meinem ersten Beitrag erwähnt. Wenn Sie Beispiele zum Teilen haben, können Sie mir bitte einen Blick darauf werfen? – codejammer
@codejammer Ich habe meine Antwort aktualisiert. Sie könnten einige Hinweise davon bekommen. –