Struts 2, spring 2, hibernate 的整合-Java频道-中国IT...

来源:百度文库 编辑:神马文学网 时间:2024/06/02 23:27:30
一.struts 2 与 spring2
struts2 本身就采用了类似于spring的IOC容器机制,可以利用struts2官方提供的插件struts2-spring-plugin-2.0.11.1.jar,直接与spring进行整合,配置文件中只需要设置
struts.objectFactory=spring
这样,就将struts2的对象管理交给了spring2的IOC容器。
在struts.xml中配置的action


/jsp/server_info/server_info_list.jsp

在spring的配置文件中配置的bean




可以看出,struts2可以直接只用在spring2中配置的bean,引用过来作为action。
这样struts2就可以跑在spring2里面了.
另外,在web.xml中还有这些内容:

contextConfigLocation
classpath:properties/work-assistant*.xml

加载spring的配置文件

org.springframework.web.context.ContextLoaderListener

设置spring的context listener

struts2
org.apache.struts2.dispatcher.FilterDispatcher


struts2
/*

设置struts2的dispatcher。
二.hibernate3 与 spring2
Spring 与 hibernate结合的时候,配置文件修改比较多。首先是hibernate的自身的配置被集成到了spring的配置文件中了.
1.配置datasource:
p:driverClassName="${hibernate.connection.driver_class}"
p:url="${hibernate.connection.url}"
p:username="${hibernate.connection.username}"
p:password="${hibernate.connection.password}"/>
2.配置sessionFactory
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" scope="prototype">



com.wod.bean.Application




create
${hibernate.dialect}
${hibernate.show_sql}
${hibernate.generate_statistics}










这两个bean是spring结合hibernate的最主要的两个bean.
当这两个bean设置好了之后,就可以直接使用spring提供的”HibernateDaoSupport” ,直接使用封装好的hibernate特性,非常方便.



初始化一个DAO.
public List getAllServersInfo() {
List find = getHibernateTemplate().loadAll(ServerInfoBean.class);
return find;
}
直接调用getHibernateTemplate()访问数据库。
三.Spring 事务的设置
 
1.设置transactionManager
p:sessionFactory-ref="sessionFactory"/>
2.设置advice








3.接下来设置AOP








这个的意思是说,当执行到com.hisoft.db.hibernate.impl这个包下面的任何类的任何方法,而且不管参数是什么,也就是说这个包下面的所有方法调用了,都要接受前面的transactionManager的管理。
4.AOP设置









定义一个切面,叫做businessAspect,引用的是我前面定义的一个叫做AOPTest的类,然后下面的两句话:


aop:before 指的是在调用目标方法之前要干点事情,pointcut-ref="businessService"就是目标的方法,在调用匹配这个pointcut 的方法之前,会调用 method中定义的那个方法。