Spring
一.Spring相关概念
1.概述
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的容器(container)
无论从大小和开销还是来说,都足以称得上是轻量级的框架
由Rod Johnson创建。
简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架
可以说,spring带来了复杂JavaEE开发的春天!
spring是一个解决方案级别的整合框架,主要是用来作解耦
2.核心部分:
IOC:控制反转
对象创建不是通过new,而是通过配置交给Spring管理
AOP:面向切面编程
所以AOP的本质是在一系列纵向的控制流程中,把那些相同的子流程提取成一个横向的面
spring是一种容器,它会管理由他创建的对象,包括生命周期的管理等。
3.一站式框架
在JavaEE三层架构中,每一层都提供了不同的解决方案
web层:SpringMVC
service层:IOC
dao层:jdbcTemplate
对应JavaWeb阶段的三层架构:
关于IOC控制反转(Inversion of Control)的理解,参见:
关于AOP面向切面编程(Aspect Oriented Programming)的理解,参见:
SSH
一.三大框架
Hibernate:
ORM思想
核心配置文件:
单独使用时名称和位置是固定,整合时不是固定的
会有一个HibernateTemplate的封装
Struts2:
核心组成:
action
处理提交表单数据,操作域对象
值栈
存取数据的方法
拦截器
AOP和责任链模式
Spring:
IoC和AOP是spring的灵魂
二.SSH整合思想
web(表现层):===struts2
service(业务ljic):===spring
dao(数据层):===hibernaate
web调service,service调dao
整合思想就是两个两个整合:1.struts2和spring整合,2.spring和hibernate整合
1).把struts2里面的action对象的创建交给spring管理
需要记得配置除了 id 和 class ,还要有scope为prototype为多实例
2).把数据库配置信息交给spring
第一次访问时需要创建sessionFactory比较慢,把这个对象的创建交给spring管理
让对象在服务器在启动时创建
具体整合方法参见:
Mybatis:MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,
SpringMvc:是一个表现层框架
作用:从请求中获取传入的参数,将处理后的结果数据返回给页面显示
流程:
第一步:发起请求到前端控制器(DispatcherServlet)
第二步:前端控制器请求HandlerMapping查找 Handler
可以根据xml配置、注解进行查找
第三步:处理器映射器HandlerMapping向前端控制器返回Handler
第四步:前端控制器调用处理器适配器去执行Handler
第五步:处理器适配器去执行Handler
第六步:Handler执行完成给适配器返回ModelAndView
第七步:处理器适配器向前端控制器返回ModelAndView
ModelAndView是springmvc框架的一个底层对象,包括Model和view
第八步:前端控制器请求视图解析器去进行视图解析
根据逻辑视图名解析成真正的视图(jsp)
第九步:视图解析器向前端控制器返回View
第十步:前端控制器进行视图渲染
视图渲染将模型数据(在ModelAndView对象中)填充到request域
第十一步:前端控制器向用户响应结果
具体参见:
SSM
SSM=Spring+SpringMVC+Mybatis
- SpringMVC:主要进行页面的 请求接受与响应。
- 组件包括:前端控制器,处理器映射器,处理器适配器,视图解析器,处理器Handler,视图View。其中,只有处理器Handler和视图View需要程序员开发。
View是一个接口,实现类支持不同的View类型(jsp,freemarker,pdf等)。另外,处理器Handler就是Controller。
—————————————————————————————————————
Service层功能:注入dao,调用dao方法
—————————————————————————————————————
Mybatis:开始Mybatis时要记住最终目的,我们要对数据库的数据进行操作,所以你只需要记住,他的使用很方便,很方便,方便,即可。