javascript
13.SpringMVC和Spring集成(一) 14.SpringMVC和Spring集成(二)
1.概念
Spring是一個開源框架,Spring是于2003?年興起的一個輕量級的Java?開發框架,Spring致力于J2EE應用的各層的解決方案,Spring是企業應用開發的“一站式”選擇,并貫穿表現層、業務層及持久層。簡單來說,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。
MVC——Spring的作用是整合,但不僅僅限于整合,Spring 框架可以被看做是一個企業解決方案級別的框架。
客戶端發送請求,服務器控制器(由DispatcherServlet實現的)完成請求的轉發,控制器調用一個用于映射的類HandlerMapping,該類用于將請求映射到對應的處理器來處理請求。HandlerMapping 將請求映射到對應的處理器Controller(相當于Action)在Spring 當中如果寫一些處理器組件,一般實現Controller 接口,在Controller 中就可以調用一些Service 或DAO 來進行數據操作 ModelAndView 用于存放從DAO 中取出的數據,還可以存放響應視圖的一些數據。 如果想將處理結果返回給用戶,那么在Spring 框架中還提供一個視圖組件ViewResolver,該組件根據Controller 返回的標示,找到對應的視圖,將響應response 返回給用戶。
Spring MVC 分離了控制器、模型對象、過濾器以及處理程序對象的角色,這種分離讓它們更容易進行定制。
2.環境搭建詳解
2.1引入相應的jar包
pringMVC和spring包的結構發生了很大的變化,各個包都分開了,靈活,要求使用者更加深入的學習使用,當我們引入包的時候,以少為原則,少的話可以根據報錯來找到相應的包,如果過多的話,包會報錯異常的混亂,不容易分辨;sprinMVC和spring本身就是一家的,所以引入的包來說基本上和spring需要的架構包是一致的.
2.2 web.xml ? ? 一個項目的全局配置點在web.xml,看一個項目用了哪些框架,主要看web.xml里面加了哪些入口監聽
配置文件的對應入口和啟動順序
注解:springMVC是通過dispastservlet來監聽的,spring使用linstener監聽的,struts2是使用filter來監聽的他們之間的啟動順序,web容器有又一個即,
第一:context-param
第二:Listerer
第三:Filter
第四:servlet
?
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>springMVC1</display-name><welcome-file-list><welcome-file>index.html</welcome-file><welcome-file>index.htm</welcome-file><welcome-file>index.jsp</welcome-file><welcome-file>default.html</welcome-file><welcome-file>default.htm</welcome-file><welcome-file>default.jsp</welcome-file></welcome-file-list><context-param><param-name>contextConfigLocation</param-name><param-value>classpath*:config/springAnnotation-servlet.xml</param-value></context-param><!--配置spring啟動listener入口 --> <listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> <!-- 配置springMVC啟動DispatcherServlete入口 --> <servlet><servlet-name>springMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>classpath*:config/springAnnotation-servlet.xml</param-value></init-param> <load-on-startup>1</load-on-startup></servlet><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><!-- encoding filter for jsp page --><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet-mapping><servlet-name>springMVC</servlet-name><url-pattern>/</url-pattern></servlet-mapping> </web-app> web.xml?
2.3 springAnnotation-servlet.xml ? 注解文件
springAnnotation-servlet.xml2.4 ?springAnnotation-core.xml ? ? 通過bean注入要調用的接口實現類
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd" [ <!ENTITY contextInclude SYSTEM "org/springframework/web/context/WEB-INF/contextInclude.xml"> ]><beans><bean id="springManager" class="com.tgb.web.controller.annotation.SpringManager"></bean> </beans> springAnnotation-core.xml2.4.1??ISpring接口
package controller.annotation;public interface ISpring {public String get(); } ISpring.java2.4.2??ISpring實現類
package controller.annotation;public class SpringManager implements ISpring {public String get() {System.out.println("------I am springManager----");return "I am getMethod";}} SpringManager.java2.4.3?SpringController類
package controller.annotation; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class SpringController { //這樣替代了在xml配置屬性的過程@Resource(name="springManager")private ISpring springManager;//springManager的注入 @RequestMapping("/spring/get")public String get(){System.out.println(springManager.get());return "/success";} } SpringController.java?
?
?
遇到的錯誤:
錯誤1:
嚴重: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'springController': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springManager' is defined
看一下代碼不知道錯在哪里,運行不出結果,可是核心的xml對bean有定義啊,求看到的大神指教
?
轉載于:https://www.cnblogs.com/chenxiaomeng/p/5799796.html
總結
以上是生活随笔為你收集整理的13.SpringMVC和Spring集成(一) 14.SpringMVC和Spring集成(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无限循环小数POJ1930
- 下一篇: gradle idea java ssm