一.ssh环境搭配
(1)struts2(web层v和c)
----创建Action
----创建Action核心配置文件(URL映射),要求类路径下并且命名为struts.xml
----配置过滤器(没它不行)
(2)spring(业务逻辑层m)
----创建核心配置文件
----配置监听器,指定配置文件的位置,实现服务器启动时加载配置文件
(3)hibernate(持久层m)
----创建实体类
----配置实体类的数据库表映射配置文件
----配置hibernate核心配置文件,要求类路径下并命名为hibernate.cfg.xml(也可以交给spring来配置)
----核心配置文件引入映射配置文件
二.ssh整合
(1)struts和spring整合
----Servlet的实例是由服务器来创建的,无法将其移植Java文件中,自然也就不能在配置文件中进行Servlet实例的配置。但是这就不符合spring的IOC思想了,所以action的出现就解决了这个问题。
----struts将action实例交给spring来创建(多实例)
----struts的核心配置文件中的class属性值对应spring配置文件中的action的bean的id属性值
(2)hibernate和spring整合
----hibernate将sessionfactory的实例交给spring来创建(需要注入dataSource)
----在spring的核心配置文件中引入hibernate.cfg.xml核心配置文件(也可以将hibernate的核心配置都交给spring来配置,这样就不需要hibernate的核心配置文件了)
(3)属性注入(DI)
----在类中添加要创建的实例类属性,即set()方法
----将spring创建的对象通过spring的核心配置文件实现属性的注入(传递)
(4)配置事务管理器,并在service层添加事务注解
三.ssh原理解析
(1)配置文件
----将各层实例创建移植到配置文件来创建(IOC),实现解耦和,降低各层之间的关系耦合
(2)BeanFactory
----通过dom4j解析spring的配置文件,获取配置文件中要创建实例的类的全路径
----然后再通过类的全路径结合反射机制实现实例的创建
----最后将创建的实体类通过属性的set()方法传递到各层去,完成属性的注入(或者说实例的传递)