SSM(Spring、SpringMVC、Mybatis)
基本概念
Spring:
什么是Spring框架(Spring的体系结构),Spring于2003年兴起,是一个分层的全栈式轻量级开源框架,为了解决企业应用开发的复杂性而创建。它包含的一系列的功能要素,大约被分为20个模块,归纳为7个部分:Core Container、Data Access/Integration、Web、AOP、Instrumentation和Test部分。
Spring框架的精髓:IOC和AOP及两者区别
IOC:控制反转,即将创建对象实例的权力反转,交给Spring容器来完成(由Spring容器的配置文件通过反射方式创建,体现在bean标签上)
DI:依赖注入,即在控制反转过程中,若对象之间有依赖关系,此时Spring容器会将一个对象所依赖的另一个对象的值直接注入(即直接赋值,体现在property标签中的ref)
SpringMVC
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架(基于请求驱动指的是使用请求-相应模式)。利用MVC架构模式的思想,将Web层进行职责解耦。
框架的目的就是帮助我们简化开发,Spring Web MVC也就是要简化我们日常Web开发,主要提供以下内容:
前端控制器是DispatcherServlet;
应用控制器由处理器映射器(Handler Mapping:进行处理器管理)和视图解析器(View Resolver:进行视图管理)组成;
页面控制器/处理器Controller(仅包含ModelAndView handleRequest(request,response)方法)的实现(也可以是任何的POJO类);
支持本地化(Locale)解析、主题(Theme)解析及文件上传等;
提供了非常灵活的数据绑定机制、数据验证和格式化;
提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。
SpringMVC执行流程图:
SpringMVC流程:
- 用户发出请求到前端控制器DispatcherServlet
- DispatcherServlet收到请求调用HandlerMapping(处理器映射器)
- HandlerMapping找到具体的控制器(可查找xml配置或注解配置),生成处理器对象的执行链(如果有),再一起返回给DispatcherServlet
- DispatcherServlet调用HandlerAdapter(处理器适配器)
- HandlerAdapter经过适配调用具体的处理器(controller)
- Controller执行完成返回ModelAndView对象
- HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet
- DispatcherServlet将ModelAndView传给ViewReslover
- ViewReslover解析后返回具体View(视图)
- DispatcherServlet根据View进行渲染视图(既将模型数据填充至视图中)
- DispatcherServlet响应用户
涉及组件分析:
- 前端控制器DispatcherServlet(不需要程序员开发),由框架提供,在web.xml中配置。作用:接收请求,响应结果,相当于转发器,中央处理器。
- 处理器映射器HandlerMapping(不需要程序员开发),由框架提供,作用:根据请求的url查找Handler(处理器/Controller),可以通过XML和注解方式来映射。
- 处理器适配器HandlerAdapter(不需要程序员开发),由框架提供。作用:按照特定的规则(HandlerAdapter要求的规则去执行Controller)
- 控制器Controller(需要工程师去开发),编写controller时需要按照HandlerAdapter的要求去做,这样适配器才可以去正确执行Handler。作用:接收用户请求信息,调用业务方法处理请求,也称之为后端控制器。
- 视图解析器ViewResolver(不需要程序员开发),由框架提供。作用:进行视图解析,把逻辑视图名解析成真正的物理视图。
- 视图View(需要工程师开发)。作用:把数据展现给用户的页面,View是一个接口,实现类支持不同的View技术(jsp、freemarker、pdf等)
Mybatis
MybatisshiORM框架的一种,主要是完成关系数据与对应对象之间的转换,是一种支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
Mybatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。Mybatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
SSM整合
搭建的思路
- Dao层:整合mybatis和Spring
需要的jar包:mybatis的jar包,Spring的jar包,Mybatis和Spring的整包,Mysql数据库驱动,数据库连接池 - 配置文件:(注意所有的配置文件都应该放在web文件中)
Mybatis配置文件:sqlMapConfig.xml,Spring配置文件:applicationContext.xml,数据源,数据库连接池,配置SqlSessionFactory(Mybaits和Spring整合包中的),配置mapper文件扫描器
Service服务层
使用jar包:主要是Spring的jar包
配置文件:applicationContext-Service.xml
配置一个包扫描器:扫描所有带@Service注解的类
事物配置:
- applicationContext-trans.xml
- 配置一个事物管理器
- 配置tx
- 配置切面
表现层,使用SpringMVC
需要使用SpringMVC和Spring的jar
配置文件:springmvc.xml(三大主件)
- 注解驱动(能替代两个)
- jsp视图解析器
- 扫描器包,@Controller注解
Web.xml
- 配置springmvc的前端控制器
- spring容器的初始化的listener