Eine kurze Einführung in die sieben Hauptmodule des Spring -Frameworks
Detaillierte Erläuterung des MVC -Modulcode im Frühjahr
Das Webmodul von Spring wird verwendet, um Web -Frameworks wie Struts1, Struts2, JSF usw. zu integrieren.
Struts1 integrieren
Vererbungsmethode
Das Spring Framework bietet eine AktionSverpackungsklasse, um die Aktion von Struts1 zu unterstützen. Nach der Erbschlüsselung der ActionVorts können Sie Spring's Beanfactory erhalten, wodurch verschiedene Ressourcen in verschiedenen Federbehältern erhalten werden.
import org.springframework.web.struts.actionsupport; öffentliche Klasse Cataction erweitert actionupport {public icatService getCarService () {return (icatService) getWebApplicationContext (). getBean ("catService"); } public actionforward execute (ActionMappingMapping, ActionForm -Formular, httpServletRequest -Anforderung, httpServletResponsponse) {catform catform = (catform) Formular; if ("list" .equals (catform.getAction ()) {returnthis.list (Mapping, Formular, Anfrage, Antwort); }} public actionForward -Liste (ActionMappingMapping, ActionForm -Formular, httpServletRequest -Anforderung, httpServletResponsponse) {catform catform = (catform) Formular; IcatService catService = getCatService (); Liste <Cat> catlist = catService.listcats (); Request.SetAttribute ("Carlist", Catlist); return maping.find ("liste"); }}Federkonfiguration in Web.xml
<context-param> <!-Speicherort der Federkonfigurationsdatei-> <PARAMEL-NAME> CONTEXTCONFIGLOCATION </param-name> <param-value> /web-inf/classes/applicationcontext.xml org.springFramework.web.context.contextloaderListener </Listener-Klasse> </Listener> <filter> <!-Verwenden Sie Spring's Own Character Filter-> <Filter-NAME> CharakterCodingfilter </filter-name <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <Filter-name> charakteritätsfilter </filter-name> <URL-Muster>/*</url-pattern> </filtermapping>
Wenn Sie in Verbindung mit Hibernate verwendet werden
<Filter> <Filter-name> hibernateFilter </filter-name> <filter-classe> org.springframework.orm.HiNRNATE3.SUPPORT. OpenSessionInviewFilter </Filter-Class> </filter> <Filter-Mapping> <Filter-Name> HibernateFilter </filter-name> <url-pattern>*.
Agentenmethode
Die Integration der Vererbungsmethode in die Frühling ist sehr einfach, aber der Nachteil ist, dass der Code mit der Feder gekoppelt ist und die Aktion für die Verwaltung nicht an den Spring übergeben wird, sodass die AOP- und IOC -Funktionen von Spring nicht verwendet werden können. Die Verwendung der Proxy -Methode kann diese Defekte vermeiden.
öffentliche Klasse Cataction erweitert Aktion {// Die hier erbte private icatservice catService ist CatService; // Setter und Getter leicht public actionforward execute (ActionMappingMapping, ActionForm -Formular, httpServletRequest -Anforderung, httpServletResponPonse) {catform catform = (catform) Formular; if ("list" .equals (catform.getAction ()) {returnthis.list (Mapping, Formular, Anfrage, Antwort); }} public actionForward -Liste (ActionMappingMapping, ActionForm -Formular, httpServletRequest -Anforderung, httpServletResponPonse) {catform catform = (catform) Formular; IcatService catService = getCatService (); Liste <Cat> catlist = catService.listcats (); Request.SetAttribute ("Carlist", Catlist); return maping.find ("liste"); }}Diese Aktion ist nicht mit der Feder verbunden, sondern definiert nur eine Icatservice -Eigenschaft, die dann von der Feder injiziert wird
Struts-congfig.xml-Konfiguration
<form-beans> <form-bean name = "catform" type = "com.clf.spring.catform"> </form-beans> <action-mappings> <action name = "catform" path = "/cat" Typ = "com.clf.spring.cataction"> <Forward name = "path ="/jsp/jsp/listcat.jsping "> </action> </action-/JSP/JSP/LISTCAT.JSP. Konfiguration, die die Wirkung von Streben an den Spring Agent-> <Controller ProcessorClass = "org.springFramework.Web.struts.DelegatingRequestProcessor" /> <!!-übergibt. Struts verwenden nicht die von der Typ -Eigenschaft angegebene Klasse, um eine Kategorie zu erstellen, sondern in der Federkonfiguration zu suchen. Daher muss die Katzenaktion im Frühjahr konfiguriert werden-> <!-Die Aktion im Frühjahr verwendet die Namenseigenschaft anstelle von ID. Die Spring fängt die Anforderung "/cat.do" ab, injizieren Sie CatService in die Katze über die Setter -Methode und rufen die ausführende () -Methode auf -> <bean name = "/cat"> <Eigenschaft name = "catService" ref = "catService"/> </bean>
Die Konfiguration von web.xml entspricht der obigen Vererbungsmethode.
Durch die Verwendung der Proxy -Methode -Aktion können Federfunktionen wie Interceptors konfiguriert werden, z.
<bean id = "catBeFeInterceptor"> <Eigenschaft name = "Ratschläge"> <bean/> </property> <Eigenschaft name = "MapedName" value = "*"> </property> </bean> <bean id = "catafterInterceptor"> <Property name = "patchno. name = "/cat"> <Eigenschaft name = "interceptornames"> <list> <Wert> catBeforinCaperce </value> <wert> catafterInterceptor </value> </list> </property> <Eigenschaft name = "Ziel"> <bean> <Eigenschaft name = "catService" refit = "catService"> </ban> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean;
Integrieren Sie Streben 2
Spring Integration Struts 2 erfordert Struts2-Spring-2.011.jar-Paket
öffentliche Klassenkataktion {private icatservice catService; Privatkatze Katze; // Setter und Getter public String list () {catService.Listcats (); Rückgabe "Liste"; } public String add () {catService.createcat (cat); return list (); }}Struts.xml Konfiguration
Zusätzlich zur normalen Konfiguration müssen Sie auch eine konstante Struts.ObjectFactory hinzufügen und den Wert auf die Feder einstellen, um anzuzeigen, dass die Aktion durch die Feder generiert wird. Ändern Sie dann das Klassenattribut von <Aktion/> in KataAction, Struts2 sucht im Frühjahr nach einer Bean mit dem Namen Cataction.
<constant name=" struts.objectFactory" value="spring" /> <packagenamepackagename="cat" extends="struts-default"> <action name="*_cat" method="{1}"> <param name="action" >{1}</param> <result>/list.jsp</result> <result name="list">/list.jsp</result> </action> </package>Federkonfiguration
<bean id = "cataction" scope = "prototyp"> <Eigenschaft name = "catService" ref = "catService"> </property> </bean>
Web.xml -Konfiguration
<context-param> <!-Speicherort der Federkonfigurationsdatei-> <PARAMEL-NAME> CONTEXTCONFIGLOCATION </param-name> <param-value> /web-inf/classes/applicationcontext.xml org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <filter> <filter-name>Struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name> Struts2 </filter-name> <URL-Muster>/*</url-pattern> </filtermapping>
Zusammenfassen
Das obige ist die detaillierte Erläuterung der Konfiguration des Webmoduls von Spring. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf andere verwandte Themen auf dieser Website verweisen. Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen.
Siehe:
Eine kurze Diskussion über das Seitensprungproblem in SpringMVC
Frühlings -AOP -Einführung Demo Sharing
Spring Framework Web Project Practical Code Sharing