Wie man Spring @Configuration annotierte Klasse anstelle der Datei applicationContext.xml in web.xml registriert?
Ich bin mit jsf und spring zusammen in der web-Anwendung. Ich habe konfigurierten datasource-und session-factory in eine configuration-Klasse, die verwendet Anmerkungen wie @Configuration, @ComponentScan
etc. Ich habe keine applicationContext.xml die Datei in meinem Projekt wie ich bin Umgang mit jedem Eintrag des Kontext-xml-Konfiguration-Klasse. Der Testfall erfolgreich funktioniert, aber wenn ich die Bereitstellung der web-Anwendung, es gibt mir Fehler
java.lang.IllegalStateException: No WebApplicationContext gefunden: Nein
ContextLoaderListener registriert?
Nun, wenn ich geben Sie die listener-Klasse in web.xml,
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
es gibt mir Fehler,
/WEB-INF/applicationContext.xml nicht gefunden
Als pro das Dokument von ContextLoaderListener
es ist wahr, dass, wenn ich nicht geben contextConfigLocation
param in web.xml
explizit, es wird eine Suche für die Standard-spring-context-Datei mit dem Namen applicationContext.xml
im web.xml
. Nun, was soll ich tun, wenn ich nicht verwenden will, spring-Kontext-Datei und die Konfiguration mit annotations? Wie sollte ich registrieren die listener-Klasse ContextLoaderListener
so dass ohne Verwendung von xml-Datei und verwenden von Anmerkungen nur, dass ich in der Lage zu führen Sie meine web-Anwendung mit spring und jsf?
InformationsquelleAutor der Frage Mital Pritmani | 2011-11-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
In
web.xml
Sie brauchen, um bootstrap-Rahmen mitAnnotationConfigWebApplicationContext
:Und vergessen Sie nicht, verwenden
@EnableWebMvc
für Ihre MVC-Anmerkungen zu kick in.weiter Lesen:
BEARBEITEN als "Kommentare follow-up" => Turing:
Ja natürlich brauchst du einen listener. Obwohl die oben komplett die Frage beantwortet:"Wie sich zu registrieren Spring @Konfiguration der annotierten Klasse statt applicationContext.xml Datei in web.xml", hier ist ein Beispiel von Frühling offizielle Dokumentation, die layouts, die voll
web.xml
:InformationsquelleAutor der Antwort tolitius
Stoßen sich eine alte Frage hier, aber mit den letzten Versionen von Spring (v3.0+) können Sie jetzt loswerden web.xml insgesamt, vorausgesetzt, Sie sind in der Bereitstellung Ihrer app auf einem web-container, der unterstützt die Servlet 3.0+.
Kann man implementieren von Spring
WebApplicationInitializer
Schnittstelle, um die gleichen Konfigurationen, die man tun würde, in web.xml. Diese Implementierung der Klasse wird automatisch von Spring 3.0+ app läuft auf Servlet 3.0+ Behälter.Wenn die Einrichtung ist eher einfach, könnten Sie stattdessen verwenden Sie eine andere Klasse von Spring, wie unten gezeigt. Alle eine nicht hier ist, um die @Configuration-Klassen und-Liste aus der servlet-mappings. Hält das setup äußerst einfach.
InformationsquelleAutor der Antwort Angad