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 注解文件
2.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.xml
2.4.1 ISpring接口
package controller.annotation;public interface ISpring {public String get(); }
ISpring.java
2.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.java
2.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集成(二)相关推荐
- SSH(Struts,Spring,Hibernate )和SSM(SpringMVC,Spring,MyBatis )的区别,抽丝剥茧的给你讲清楚
SSH 通常指的是 Struts2 做前端控制器,Spring 管理各层的组件,Hibernate 负责持久化层. SSM 则指的是 SpringMVC 做前端控制器,Spring 管理各层的组件,M ...
- 2021最新Java面试题(Hibernate面试题、MyBatis面试题、Spring面试题、SpringMVC面试题)
1.什么是 ORM 框架? 答:对象-关系映射(Object-Relational Mapping,简称ORM),面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境 ...
- Spring (Bean, IoC, AOP, SpringMVC)
Spring - Bean, IoC, AOP, SpringMVC Spring 1. 核心容器 1.1 Spring-beans 1.1.1 Bean 的配置 1.1.1.1 自动装配 1.1.1 ...
- (转)SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合
http://blog.csdn.net/yerenyuan_pku/article/details/72231763 之前我整合了Spring和MyBatis这两个框架,不会的可以看我的文章MyBa ...
- 手写实现Spring(IOC、DI),SpringMVC基础功能
手写实现Spring(IOC.DI),SpringMVC功能 spring和springMVC的用法相信大家都不陌生,我简单讲下我实现的思路 spring阶段 事项 配置 配置web.xml: ini ...
- java mvc数据库 封装_关于SpringMvc参数封装_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...
SpringMVC Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面.Spring MVC 分离了控制器.模型对象.分派器以及处理程序对象 ...
- 金三银四、金九银十 面试宝典 Spring、MyBatis、SpringMVC面试题 超级无敌全的面试题汇总(超万字的面试题,让你的SSM框架无可挑剔)
Spring.MyBatis.SpringMVC 框架 - 面试宝典 又到了 金三银四.金九银十 的时候了,是时候收藏一波面试题了,面试题可以不学,但不能没有!
- 第一章 Web MVC简介 —— 跟开涛学SpringMVC 博客分类: 跟开涛学SpringMVC webmvcjavaeespring跟开涛学SpringMVC Web MVC简介 1.1、We
第一章 Web MVC简介 -- 跟开涛学SpringMVC 博客分类: 跟开涛学SpringMVC webmvcjavaeespring跟开涛学SpringMVC Web MVC简介 1.1.Web ...
- SpringMVC个人理解(downpour 的SpringMVC深度探险的个人整理)
2019独角兽企业重金招聘Python工程师标准>>> 从servlet开始讲起,之后以DispatcherServlet为主线展开. SpringMVC是建立在Servlet基础上 ...
最新文章
- ACMNO.3 有三个整数a b c,由键盘输入,输出其中的最大的数。 输入 一行数组,分别为a b c 输出 a b c其中最大的数 样例输入 10 20 30 样例输出 30
- 脑电分析系列[MNE-Python-2]| MNE中数据结构Epoch及其创建方法
- 自学python语言-自学Python1.1-简介
- 什么?ES6 中还有 Tail Calls!
- Solr 配置文件之schema.xml
- 专属微信二维码python制作_如何利用Python制作简单的公众号二维码关注图
- Linux进程通信之mmap
- PHP获取QQ等级,php仿QQ等级太阳显示函数
- 项目回顾-PopupWindow
- wireshark-抓包极简使用教程
- EscapeDataString URI 字符串太长
- Git:git合并分支
- C语言程序设计谭浩强第五版课后答案
- crc16 c语言 非查表,CRC16CCITT(1021)的16字表长查表程序
- c语言程序题在哪儿搜,国家二级计算机考试c语言题库
- img标签插入图片的方法
- 关于求字体识别不出来
- latex运行报错File `res.cls‘ not found.
- 0对任何数取余_大数取余
- VR游戏设计之三大特性
热门文章
- python 任务计划_使用Python添加计划任务
- 风格迁移应用_[风格迁移][超分][ECCV2016]Perceptual Losses for Real...
- uvalive5092(找规律)
- 零件分组pascal程序
- mysql5.7.14操作命令_Mysql5.7.14安装配置方法操作图文教程(密码问题解决办法)
- fpga实战训练精粹pdf_tensorflow版PSENet 文本检测模型训练和测试
- c语言编程*字母图形,BIT网教c语言练习_编程复习1输出图形
- 二级联动菜单(javascript)
- STL源码剖析(四)
- 理解一条语句:SELECT difference(sum(value)) FROM mq_enqueue WHERE channel =~ /ActiveMQ_TEST/ AND $tim...