Spring--Spring Mvc --Mybatis(SSM框架)的配置(一)

Spring–Spring Mvc --Mybatis(SSM框架)的配置(一)

MVC思想

在开始是ssm框架的建立前,先要了解mvc的思想。什么是mvc?

简要说明即-M-model模型层,V-view视图层,C-control控制层
MVC要实现的目标是将软件用户界面和业务逻辑分离以使代码可扩展性、可复用性、可维护性、灵活性加强。
Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
View(视图) - 视图代表模型包含的数据的可视化。
Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

MVC思想把程序强制性的分成三层,把应用程序的输入、处理和输出分开,各自执行自己的任务。用户在视图层发送请求到控制层,控制层接受请求向模型层请求数据,模型层返回数据到控制层,控制层承载数据响应视图层请求,最终在视图层渲染数据。
MVC执行流程

Spring MVC

Spring MVC是Spring的一个模块,提供web层解决方案(基于MVC设计架构)

spring-mvc流程图:
spring-mvc流程图
步骤:
第一步:用户发起request请求,请求至DispatcherServlet前端控制器。
第二步:DispatcherServlet前端控制器请求HandlerMapping处理器映射器查找Handler, DispatcherServlet前端控制器,相当于中央调度器,各各组件都和前端控制器进行。交互,降低了各各组件之间耦合度。
第三步:HandlerMapping处理器映射器,根据url及一些配置规则(xml配置、注解配置)查找Handler,将Handler返回给DispatcherServlet前端控制器。
第四步:DispatcherServlet前端控制器调用适配器执行Handler,有了适配器通过适配器去扩展对不同Handler执行方式(比如:原始servlet开发,注解开发)。
第五步:适配器执行Handler,Handler是后端控制器,当成模型。
第六步:Handler执行完成返回ModelAndView,ModelAndView:springmvc的一个对象,对Model和view进行封装。
第七步:适配器将ModelAndView返回给DispatcherServlet。
第八步:DispatcherServlet调用视图解析器进行视图解析,解析后生成view,视图解析器根据逻辑视图名解析出真正的视图。View:springmvc视图封装对象。
第九步:ViewResolver视图解析器给前端控制器返回view。
第十步:DispatcherServlet调用view的渲染视图的方法,将模型数据填充到request域。
第十一步:DispatcherServlet向用户响应结果返回JSP页面或者Json数据。

Spring MVC接口

在这里插入图片描述
DispatcherServlet:
前端控制器(也称总控制器),把请求给转发到具体的控制类
HandlerMapping:
映射处理器,负责映射中央处理器转发给controller时的映射策略,一共三种:
BeanNameUrlHandlerMapping:
按着controller的name来映射寻找。
SimpleUrlHandlerMapping:
按着简单url来映射寻找。
ControllerClassNameHandlerMapping:
控制类的类名控制器,访问时类名首字母需要小写。
Controller
具体处理请求的控制器。
ModelAndView
服务层返回的数据和视图层的封装类。
ViewResolver
视图解析器,解析具体的视图
Interceptors(根据具体的业务)
拦截器,负责拦截我们定义的请求然后做处理工作

spring-mvc配置文件

在WEB.xml文件中配置前端控制器(分发DispatcherServlet):

<!-- 1、前端控制器 -->
	<servlet>
		<servlet-name>springMVC</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<!-- 加载springMVC配置 -->
		<init-param>
			<!-- 配置文件地址配置 -->
			<!-- 如果不配置contextConfigLocation,默认查找的配置文件名称classpath下的:
			servlet名称+"-servlvet.xml",即springmvc-servlvet.xml -->
			<param-name>contextConfigLocation</param-name>
			<param-value>springMVC.xml</param-value>
		</init-param>
	</servlet>
	<servlet-mapping>
		<servlet-name>springMVC</servlet-name>
		<url-pattern>*.do</url-pattern>
	</servlet-mapping>

创建springmvc.xml文件

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
		http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
<!-- 1.配置处理映射器 -->
	<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" />
	<!-- 2.配置Handler 由于使用了BeanNameUrlHandlerMapping处理映射器,name配置为url -->
	<bean id="userController" name="/userList.do" class="com.lp.controller.UserController" />
	<bean id="LoginController" name="/login.do" class="com.lp.controller.LoginController" />
	<!-- 3.处理器适配器 -->
	<!--简单url映射 集中配置bean的id对应 的url -->
	<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
		<property name="mappings">
			<props>
				<prop key="/userList.do">userController</prop>
				<prop key="/login.do">LoginController</prop>
			</props>
		</property>
	</bean>
	
		<!-- 4.配置视图解析器 -->
	<!-- 配置视图解析器 要求将jstl的包加到classpath -->
	<!-- ViewResolver -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

升级版(配置注解开发):

<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
		http://www.springframework.org/schema/mvc 
		http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop 
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
	<!-- 1.配置注解开发Handler -->
	<context:component-scan base-package="控制层地址"></context:component-scan>
	<!-- 2.注解映射器 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />
	<!-- 3.注解适配器 -->
	<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />
	<!-- 4.配置视图解析器 -->	
	<!-- 配置视图解析器 要求将jstl的包加到classpath -->
	<!-- ViewResolver -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/" />
		<property name="suffix" value=".jsp" />
	</bean>
</beans>

在springmvc.xml文件中优化注解扫描

<!-- 1.配置注解开发Handler -->
	<!-- <bean class="需要加载注解包地址" /> -->
	<!-- 1+.注解扫描 -->
	<!-- 使用spring组件扫描 -->
	<context:component-scan base-package="扫描注解包地址" />
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值