SSH三大框架整合配置详解
首先,三大框架整合,肯定是要导入相当多的jar包,这是不容置疑的!
这里就不一一列举了,直接截图吧:
(1) 基于配置文件的整合:
第一步:我们需要在web.xml中定义一个Struts2的filter:
第二步:编写Struts.xml文件:
这个就不细说了!!
第三步:在web.xml中配置一个监听器,因为如果我们要加载applicationContext.xml,然而action是多实例的,如果每请求一次action就要加载一次xml的话,这会使得你的整个项目效率十分低 下,因此,我的想法是把applicationContext.xml文件放在servletContext中,只加载一次,因此我们就需要配置一个servletContext的监听器。
第四步:先开始Struts2与Spring的整合:先把service,dao,entity,action这些层次建好
(1.1)Struts2自己管理action的方式:
(1.2) action交给Spring管理:
action交给Spring管理的话,Struts.xml文件里action的class不应该写全类名,只需要写Spring里的id名即可,并且 要设置scope="prototype",因为action是多例的!!
其实这里还是推荐你们用Spring管理,因为可以整合Spring的AOP进行统一管理!!
同时这里要注意的一个地方是,因为这是Struts2余Spring整合,所以这里有一个比较快捷的小技巧,但是这要依赖一个jar包:
传统方式要通过类来getBean获取service,而这里只需要配置一下常量就可以在action里不需要通过注解或者配置 文件就可以对service直接进行调用,只需要设置一下setService方法即可!!
第五步:Spring与Hibernate的整合:
有两种方式:
(1)零障碍整合
千万不要忘记了要配置事务管理哦!!
之所以直接注入sessionFactory就可以调用模板,你打开HibernateDaoSupport类,可以发现,在里面有个setSessionFactory方法里,创建了template
同时要再业务层(service层,用以控制事务)加上:
(2)无Hibernate配置文件形式
在Spring中就要配置好Hibernate的一些属性:
1.c3p0连接池的信息:
2.hibernate常用属性:
3.映射关系:
关于在dao层查询出来的result,如果要传到web层的话,可能在service层就已经将事务关闭,因此在web层不能及时的接收到要获取的对象,因此我们要在web层开启事务!!
(2) 基于注解的整合:
第1-3步:前三步和上面的xml形式整合是一样的,就不细说了!
第四步:建立action:
第五步:注册实体类:
第六步:之后就是事务管理器的注册和模板注入,和上面一样,就不细说了!!