SSM(Spring+SpringMVC+MyBatis)框架集由Spring、SpringMVC、MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架。其中spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVC:
1.客户端发送请求到DispacherServlet(分发器);
2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller;
3.Controller调用业务逻辑处理后,返回ModelAndView;
4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图;
5.视图负责将结果显示到客户端。
Spring:就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IOC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。Spring的目的就是让对象与对象(模块与模块)之间的关系没有通过代码来关联,都是通过配置类说明管理的(Spring根据这些配置,内部通过反射去动态的组装对象)。IOC容器代表的就是org.springframework.beans包中的BeanFactory接口,其提供了IOC容器的基本功能;而org.springframework.context包下的ApplicationContext接口扩展了BeanFactory,还提供了与Spring AOP集成、国际化处理、事件传播及提供不同层次的context实现。简单说,BeanFactory提供了IOC容器最基本功能,而ApplicationContext则增加了更多支持企业级功能支持。ApplicationContext完全继承BeanFactory,因而BeanFactory所具有的语义也适用于ApplicationContext。
Mybatis:是对jdbc的封装,它让数据库底层操作变的透明。Mybatis的操作都是围绕一个sqlSessionFactory实例展开的。mybatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。Mybatis通过MapperProxy动态代理dao,也就是说,当执行自己写的dao里面的方法的时候,其实是对应的MapperProxy在代理。