Ich frage mich, wie funktioniert Tomcat
Bootstrap meine App auf Spring MVC?Wie bootet Tomcat die App ohne web.xml?
Ich habe einen Initialisierer:
public class AppInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) {
AnnotationConfigWebApplicationContext rootCtx = new AnnotationConfigWebApplicationContext();
rootCtx.register(AppConfig.class);
container.addListener(new ContextLoaderListener(rootCtx));
AnnotationConfigWebApplicationContext dispatcherCtx = new AnnotationConfigWebApplicationContext();
dispatcherCtx.register(FreeMarkerWebConfig.class);
ServletRegistration.Dynamic dispatcher = container.addServlet("dispatcher", new DispatcherServlet(dispatcherCtx));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/");
}
}
Ich weiß, warum wir web.xml
brauchen und wie Tomcat
verwendet es die App Bootstrap. Aber ich verstehe nicht, wie Tomcat
wissen, welches Servlet es verwenden sollte, um die Anwendung zu starten, wenn es keine xml
Dateien gibt, aber nur AppAppInitializer
?
Abhängigkeiten
<!-- spring mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<!-- servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
</dependency>
...
fand ich diese Klasse in Federkern SpringServletContainerInitializer
. Stimmt es, dass Tomcat
es zum Bootstrap meiner App verwendet?
http://docs.oracle.com/javaee/7/api/javax/servlet/ServletContainerInitializer.html?is-external=true
Danke. Jetzt weiß ich, wie es funktioniert. – Finkelson