Hier ist ein einfachste Beispiel
1. Erstellen Sie ein neues Standard -Javaweb -Projekt
2. Importieren Sie einige grundlegende JAR -Pakete, die für den Frühling benötigt werden
3. Konfigurieren Sie die Datei web.xml
<? XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee cononfiguration/web-app-app-app-app-app-app-app-app-app-app-app-_2- <Context-Param> <Param-name> contextconfigLocation </param-name> <param-value> classPath*: applicationContext*.xml, </param-value> </context-param> <!-Spring Context Loading Listener-> <Hörer> <Hörer-Class-Class-Class-Class-ClasssFlamework. </Hörer> <Welcome-File-List> <Welcome-File> Index.jsp </Welcome-File> </Welcome-File-List> </web-App>
4. Fügen Sie die Anwendung von Spring Configuration Datei hinzu
5. Machen Sie die einfachste Konfiguration der Datei applicationContext.xml
<? XSI: scheMalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-Beans-3.0.xsd" Default-Lazy-Init = "-Anname" -Anname "-Anname"; value = "Zhang san"/> </bean> </beans>
Beans-der Stammknoten der XML-Datei.
XMLNS - ist die Abkürzung von XMLNAMEPACE. Da die Tag -Namen von XML -Dateien angepasst werden, werden die von anderen selbst verfassten Tags wahrscheinlich dupliziert, die Funktionen sind jedoch unterschiedlich, so
XMLNS: XSI - bezieht sich auf die XML -Datei entspricht den XML -Spezifikationen. Der vollständige Name von XSI: XMLSchemainstance bezieht sich auf die Spezifikationen, die streng von den in der verwendeten Schema -Ressourcendatei definierten Elemente folgen. Welche Standards entsprechen die in der Datei /Spring-Beans-2.0.xsd definierten Elemente?
XSI: Schemalokalisierung - bezieht sich auf die Spezifikationen, die das XML -Element in diesem Dokument entspricht. Die Schemalokationseigenschaft wird verwendet, um ein Schema -Dokument (Schema) zu referenzieren. Der Parser kann dieses Dokument verwenden, um das XML -Instanzdokument bei Bedarf zu überprüfen. Sein Wert (URI) erscheint paarweise, der erste Wert repräsentiert den Namespace, und der zweite Wert repräsentiert die spezifische Position des Musterdokuments, das den Namenspace beschreibt, der durch Leerzeichen getrennt ist.
6. Erstellen Sie eine neue Entitätsklasse user.java
Paket com.po; public class user {private Zeichenfolge Name; privates Stringalter; public String getName () {return name; } public void setName (String -Name) {this.name = name; } public String getage () {Return Age; } public void Setage (String Age) {this.age = Age; }}7. Test
public static void main (String [] args) {// Todo automatisch generierte Methode Stub ApplicationContext ac = new FileSystemXMLApplicationContext ("config/applicationContext.xml"); User user = (user) ac.getbean ("user"); System.out.println (user.getName ()); }Ausgabe
Dies ermöglicht den Bau eines grundlegenden Spring -Frameworks für Webprojekte. Als nächstes werden wir einige Erweiterungen durchführen, die in realen Projekten verwendet werden. Sie können einige Funktionen oder andere Einstellungen für die Integration von Spring Framework in web.xml konfigurieren.
<!-Zeichencodierungsfilter müssen oben im Filter platziert werden-> <filter> <filter-name> codingfilter </filter-name> <filterklasse> org.springFramework <param-value> true </param-value> </init-param> <init-param> <init-param> <param-name> codierung </param-name> <param-value> utf-8 </param-value> </init-param> </filter> <filtermaping> <filter-name> codierungfilter </filter-name> <filter-name <URL-Muster>/*</url-puster> </filter- mapping> <!-apenSessionInview-> <filter> <filter-name> openSessionInviewfilter </filter-name> <Filterklasse> org.springfilework <Param-name> SingleSession </param-name> <param-value> true </param-value> </init-param> <init-param> <param-name> SessionFactoryBeanname </param-name> <!-Angeben Sie welche Sitzungskonfiguration in der Spring-Konfiguration apenssionInview-<param-value> SessionFactory </param-value> -Value>-value> SessionFactory </param-value> -Value>-value> Sessionfactory </param-value> -Value>-value> SessionFactory <Filter-Mapping> <Filter-name> OpenSessionInviewfilter </Filter-name> <url-puftern>/*</url-puster> </filtermapping> <!-Feder Sicherheitsfilter org.springframework apache shiro, --> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <URL-Muster>/*</url-puftern> </filter-mapping> <!-Deklaration Spring MVC Dispatcherservlet-> <servlet> <Servlet-name> SpringDispatcher </servlet-name> <Servlet-Class> org.springFramework.web.servlet.dispatcherservlet <//init.servlet.dispatcherservlet <//in Initor. <param-name>contextConfigLocation</param-name> <param-value>classpath*:spring-mvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- map all requests for /* to the dispatcher servlet --> <servlet-mapping> <servlet-name>springDispatcher</servlet-name> <URL-BUATTER>/</URL-BUATTER> </DERNLET-MAPPING> <!-Konfigurationsfehler Seite-> <Fehler-Page> <Fehlercode> 404 </Fehler-Code> <Ports> Fehlerpage/404.JSP </location> </fehler-page> <!-401 Fehler-> <Fehlerpage> <Worry-Code> 401 </fehler-code> <position> /errorpage/401.html </location> </fehler-page> <!-taglib.jspf und andere Dateien für jede JSP-Seite einführen-> <jsp-config> <taglib> <daglib-uri> /web-inf/runqianreport4.tld </taglib-uri> <TAGLIB-LOCATION> /WEB-NF/RUNQIANREPORT4.TLD </taglib-location> </taglib> <JSP-Property-Group> <url-pufter>*. <!-<trim-Directive-WhiteSpaces> true </trim-Directive-WhiteSpaces>-> </JSP-Property-Group> </jsp-config>
Unter ihnen soll JSPF einige globale Aussagen machen
<%@ page Language = "java" contentType = "text/html; charset = utf-8" <span style = "White-Space: PRE"> </span> pageCoding = "utf-8"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core prefix = "fn" uri = "http://java.sun.com/jsp/jstl/functions"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%@ Taglib Prefix = "fmt" Uri = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "fmt" Uri = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "fmt" Uri = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "fmt" URI = "http://java.sun.com/jsp/jstl/fmt"%> <%@ taglib prefix = "fmt" uri = "h taglib prefix =" fnc "uri ="/web-inf/tlds/fnc.tld "%@ taglib Tagdir ="/wetinf/wetinf/tag "my MyMtaG@ my mytag" <c: set var = "ctx" scope = "session" <span style = "White-Space: pre"> < /span> value = "$ {pageContext.request.ContextPath}" />Weitere Funktionen können in applicationContext.xml konfiguriert werden
<!-Weitere Aussagen können zu Beans hinzugefügt werden. xmlns: Jee = "http://www.springframework.org/schema/jee" xmlns: tx = "http://www.spingframework.org/schema/tx" xmlns: aoop = "http://wwwwwwwwwwwwww./wwwwww.Stx xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/jee http://www.springframe.g/schema/jee/jee/sping- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/context/context/sping-context.org/schema/context/sping-context.org/schema/context/sping-contextexte.contextextextext.org/schema/context/context/Scontextextextextextextextextext/Schema/Schema/Schema/Scontext/Scontextextextextex http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd "default-lazy-init =" false-Autowire = "bynamen"> <!-"> <!" <AOP: Aspektj-Autoproxy /> <MVC: Annotationsgetrieben /> <!-Der Kommentar ersetzt die Konfiguration und scannt automatisch das Basispaket. Das Scan-Paket und alle Klassen unter allen Untertackungen müssen vom Controller entfernt werden. Andernfalls beeinflusst es die Transaktionsmanagement-> <Kontext: Komponent-scan-Basis-Package = "com.schoolNet"> <context: exkluzieren Sie Filtertyp "Annotation" Expression = "org.springFrameWork.steretype. <bean id = "PropertyConFigurer"> <Eigenschaft name = "fileCoding" value = "utf-8"/> <Eigenschaft name = "Positionen"> <list> <wert> classPath: jdbc.properties </value> </list> </Property> </bean> <! value = "$ {jdbc.driverClassName}" /> <Eigenschaft name = "jdbcurl" value = "$ {jdbc.url}" /> <Eigenschaft name = "user" value = "$ {jdbc.username}" /> <Eigentum name "password" minpool = "$" {{{{{{{{{{{{{{{{{{{{{{{{{{{{{Jdbc.} "}" /> < <wert> 1 < /value> < /Eigenschaft> <Eigenschaft name = "maxpoolsize" value = "100" /> <Eigenschaft name = "initialpoolSize" value = "3" /> <!-Maximale Leerlaufzeit, wenn die Verbindung nicht innerhalb von 60 Sekunden verwendet wird, wird die Verbindung verworfen. Wenn es 0 ist, wird es niemals verworfen. Standard: 0-> <Eigenschaft name = "maxidletime" value = "60" /> <! Standard: 3-> <Eigenschaft name = "AccireIncrement" value = "5" /> <Eigenschaft name = "MaxStatements" value = "0" /> <!-Überprüfen Sie die Leerlaufverbindungen in allen Verbindungspools alle 60 Sekunden. Standard: 0-> <Eigenschaft name = "idleConnectionTestPeriod" value = "60" /> <!-Definiert die Anzahl der wiederholten Versuche, nachdem eine neue Verbindung nicht aus der Datenbank abgerufen wurde. Standard: 30-> <Eigenschaft name = "accocireretryattemptes" value = "30" /> <!-Das Erhalten der Verbindung führt dazu, dass alle Threads darauf warten, dass der Verbindungspool die Verbindung erhält, um eine Ausnahme auszulösen. Die Datenquelle ist jedoch weiterhin gültig und versucht weiterhin, die Verbindung beim nächsten Aufruf von GetConnection () zu erhalten. Wenn die Datenquelle auf TRUE eingestellt ist, erklärt sie, dass sie nach fehlgeschlagenen Versuchen, die Verbindung zu erhalten, getrennt und dauerhaft geschlossen wurde. Standard: false-> <Eigenschaft name = "BreakAfteracquireFailure" value = "false" /> <!-Bitte verwenden Sie es nur bei Bedarf aufgrund des Hochleistungsverbrauchs. Wenn er auf TRUE eingestellt ist, wird seine Gültigkeit bei jeder Anschlussübermittlung überprüft. Es wird empfohlen, IdleConnectionTestPeriod oder automaticTesttable zu verwenden, um die Leistung von Verbindungstests zu verbessern. Standard: false-> <Eigenschaft name = "testconnectionOneCheckout" value = "false" /> < /bean> <!-Definition des Transaktionsmanagers (deklarative Transaktion)-> <!-Support @Transactional Tags-> <!-Way One: DataSourcetRansactionManager-> <bean id = "tansactionManager"> < /<-Comention name = ". <tx: Annotationsgetriebene Transaktionsmanager = "TransactionManager"/> <!-Way Two: HibernatetransactionManager-> <bean id = "hibernatetransactionManager"> <Eigenschaft name = "Sessionfactory"> <ref local = "sessionfactory"/</</</bean> -Sessionf-Hibernate-Factory-Sessions-Factory-Session-Factory-Session-Factory-Session-Factory-Session-Factory-> </bean> <!---teen> <!---saitan id. <Eigenschaft name = "dataSource" ref = "dataSource"/> <Eigenschaft name = "lobHandler" ref = "lobhandler"/> <Eigenschaft name = "mapinglocations"> <list> <wert> classPath*:/com/schulnet/**/*. Hibernate generiert nicht automatisch Tabellen, wenn mehrere Tabellenspaces in Oracle gleich sind. -> <prop key = "hibernate.default_schema"> $ {jdbc.username} </prop> <prop key = "hibernate.dialect"> org.hiberNate.dialect.oracle10GDIALECT </prop> <prop key = "hibernate. key="hibernate.generate_statistics">false</prop> <prop key="hibernate.generate_statistics">false</prop> <prop key="hibernate.connection.release_mode"> auto </prop> <prop key="hibernate.autoReconnect">true</prop> <prop key="hibernate.cache.provider_class"> org.hiberNate.cache.ehcacheProvider </prop> <!-Speicher-Leak-Problem-> <prop key = "hibernate KEY = "Current_Session_Context_Class"> Thread </prop> </props> </property> <Eigenschaft name = "eventListeners"> <map> <Eintragsschlüssel = "merge"> <bean/> </Eintrag> </map> </property> </bean> <! transaction-Manager = "HibernatetransactionManager"> <tx: Attribute> <tx: Methode name = "speichern*" Propagation = "Erforderlich" Rollback-for = "Ausnahme" /> <tx: method name = "add*" Propagation = "Erforderlich" Rollback-for = "Ausnahme" /> <tx: method name = "modify*" modify "modify" modify "modify" modify "modify" modify "modify Propagation = "Erforderlich" rollback-for = "exception" /> <tx: method name = "del*" propagation = "Erforderlich" rollback-for = "exception" /> <tx: method name = "start*" Propagation = "Erforderlich" Rollback-for = "Exception" /> <tx: Methode name = "stop*" Propagation ". Rollback-for = "Exception" /> <tx: Methode name = "Clear*" Propagation = "Erforderlich" Rollback-for = "Exception" /> <tx: Methode name = "Clear*" Propagation = "Erforderlich" Rollback-for = "Ausnahme" /> <tx: Methode name = "execute*" Propagation = "Rollback-for-" -Schood " /> <Tx: Methode". <tx: method name = "do*" propagation = "Erforderlich" rollback-for = "exception" /> <tx: method name = "set*" Propagation = "Erforderlich" Rollback-for = "Ausnahme" /> <tx: method name = "*n" propagation = "nie" /> <Tx: method name = "*"*"methods Für Transaktionsmanagement-> <AOP: config> <AOP: Advisor pointCut = "Ausführung (*com.eshine ..*. service.Spring-MVC.xml-Dateikonfiguration
<? xmlns: Jee = "http://www.springframework.org/schema/jee" xmlns: tx = "http://www.spingframework.org/schema/tx" xmlns: aoop = "http://wwwwwwwwwwwwww./wwwwww.Stx xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframework.org/schema/mvc" xsi: schemalocation http://www.springframework.org/schema/beans http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springFramework.org/schema/mvc http:/www.Springframe.org/sschema/mvc/Spring-mvc-mvc-mving-mving-mvring-mving-mving-mving-mving-mvring-mvring-mvring-mvring-mvring-mvring-mvring-mvring-mvring-mvring-mvring-mvring-mvring-mvring/SCHEMA/SCHEMA/SCHEMA <context:component-scan base-package="com.schoolnet" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.steretype.Controller" /> </context:component-scan> <mvc:annotation-driven /> <mvc:default-servlet-handler /> <!-- jsp view Parser-> <bean id = "jspviewresolver"> <Eigenschaft name = "prefix" value = " /" /> <Eigenschaft name = "suffix" value = ". jsp" /> <Eigenschaft name = "order" value = "0" /> <Eigenschaft name = "contentType" value = "text /html; charsset = utf-8" /> < /boUn> < /uplowd, utf-8 " /> < /utt, utf-8" /> < /boUnl; Dateien-> <bean id = "multipartresolver"> <Eigenschaft name = "maxUploadsize" value = "1073741824"/> </bean> </beans>
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über die vollständige Code -Freigabe des Spring Framework -Webprojekts. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können weiterhin auf diese Seite verweisen:
SpringMVC REST STYLE EINLEITUNG UND Implementierungscode Beispiel
SpringMVC Interceptor implementiert einzelne Anmelde
Spring Integrated Redis detailliertes Code Beispiel
Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!