什么是SSM?
SSM(Spring+SpringMVC+MyBatis)就是由Spring、SpringMVC、MyBatis三个开源框架整合而成的框架集,常作为数据源较简单的web项目的框架。
其中,
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
SpringMVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。
SSM整合思想:把各自的对象交给不同的容器管理。有两个容器:SpringMVC和Spring的容器。
1、SpringMVC是视图层(UI)的框架,把视图使用的对象交给SpringMVC容器管理,放在SpringMVC的配置文件中。
1)处理器对象(Controller);
2)注册组件扫描器<context:component-scan base-package="Controller注解所在的包名"/>;
3)注册视图解析器:InternalResourceViewResolver,配置前缀和后缀;
4)注册注解驱动:<mvc:annotation-driven>;
5)注册处理器的映射器,注册处理器的适配器(可不配置)
2、Spring管理业务层和持久层的对象(Service和dao),这些对象放在Spring的配置文件中,交给Spring的容器管理。
1)Service对象交给Spring,使用@Service注解。
<context:component-scan base-package="Service注解所在的包名"/>;
2)Dao对象交给Spring,MyBatis对象交给Spring。
a)数据源DataSource:c3p0,dbcp;
b)注册SqlSessionFactoryBean,目的是创建SqlSessionFactory;
c)注册动态代理扫描器,目的是创建Dao接口的动态代理对象,即Dao层的对象;
3)把事务管理交给Spring。
a)使用注解处理事务;
b)使用AspectJ的AOP在配置文件中管理事务
Spring容器和SpringMVC容器的关系:
Spring是SpringMVC的父容器。
这里的父子关系并不是继承关系的父子关系,而是在SpringMVC容器(子容器)中可以知道Spring容器(父容器)的存在。子容器可以访问父容器,而父容器不能访问子容器。
SSM整合的配置文件:
1)SpringMVC的配置文件,文件名是自定义的,springmvc.xml,dispatcherServlet.xml;
2)Spring的配置文件,文件名是自定义的,applicationContext.xml
3)MyBatis的主配置文件,配置别名和SQL映射文件的位置;
4)SQL映射文件,写SQL语句的;
5)数据库属性配置文件,例如:jdbc.properties;
6)web.xml
a)注册SpringMVC的中央调度器:作用是接收请求,在启动的时候创建SpringMVC容器,读取SpringMVC的配置文件;
b)注册Spring的监听器ContextLoadListener,在启动的时候创建Spring的容器,读取Spring的配置文件;
c)注册字符集过滤器,解决POST请求的乱码问题。
开发步骤:
1、建表;
2、创建动态web应用;
3、重点:在Web.xml文件中注册SpringMVC的中央调度器,Spring的监听器,字符集过滤器;
4、建包:实体类包,Service包,Controller包。就知道程序的组织结构;
5、写配置文件:
1)SpringMVC,Spring;
2)当写Dao的时候就可以写SQL映射问价和MyBatis的主配置文件。
6、写代码:Dao、Service、Controller的代码;
7、定义请求页面;
8、定义处理结果页面;
9、定义事务;