Struts2+Spring+Hibernate整合
SSH2框架中,Spring充当了一个JavaBean容器的作用,Spring使用IOC(依赖注入)和AOP(面向切面编程)技术接管了HibernateDAO、事务和Strutsaction对象及service业务层。
MVC分别使用:(1M层,Spring;(2V层,JSP;(3C层,Struts;(4)持久层,Hibernate
我用的是myeclipse8.6tomcat6.0.30jdk6.0,和sqlServer2000版本的。
在开发工程中所用到的jar包如下图所示:
我是直接先引进去的。
来做一个示例讲解三者的整合:一个登录的结构
1.新建数据库  stuInfo
其中数据库中有一个表userInfo,字段如下图所示:
Id是唯一标识符, 自动增长,userNamepassWord是用户名和密码
2.开始准备整合工作
新建一个webProject项目
导入所需要的jar包,前面截图已经给出来了。
3.添加stucts2的支持
选择stucts2的目录放在src下,然后打开并增加下列代码进去
<package name="stucts2" extends="stucts-default">
web布局框架</package>
对于l的修改我们放在最后三个框架全部整合好后进行修改
4.添加数据连接
如图所示:
这里我用的是jtds
下面我们在src下建立一个包,命名为ity,存放实体类
添加hibernate的支持
其中我们在最后一步是否选择create sessionFactory的时候取消
点击完成即可
然后我们将下列代码加进去
<property name="hibernate.show_sql">true</property>
        <property name="format_sql">true</property>
这样我们执行程序的时候会再控制台显示相应的hql查询
如下所示:
5.添加spring的支持
点击完成即可
这样就添加了Spring的支持
从上述代码中可以看到,Spring封装了Hibernate的操作,用Spring的方式接管了HibernateSession创建及销毁,创建SessionFactory的周边信息。
6.此时我们配置l文件
将如下代码加到l
<filter>
      <filter-name>encodingFilter</filter-name>
      <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
      <init-param>
          <param-name>encoding</param-name>
          <param-value>utf-8</param-value>
      </init-param>
  </filter>
  <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/applicationContext*.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.t.ContextLoaderListener</listener-class>
    </listener>
    <filter>
        <filter-name>lazyLoadingFilter</filter-name>
        <filter-class>hibernate3.support.OpenSessionInViewFilter</filter-class>
        <init-param>
            <param-name>flushMode</param-name>
            <param-value>AUTO</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>lazyLoadingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
《这些代码等你用的时间久了自然就会了解》这里不做太多的讲述
添加下列代码到stucts2
struts.objectFactory的作用是使用Spring来管理struts2action
l中添加事务的管理,这里若是不添加在我们以后做curd操作的时候会是一直不停的打开着数据库操作,而没有执行关闭的操作
引入:《beans》如下所示
<beans xmlns="/schema/beans"
    xmlns:xsi="/2001/XMLSchema-instance" xmlns:aop="/schema/aop"
    xmlns:tx="/schema/tx" xmlns:p="/schema/p"
    xsi:schemaLocation="/schema/beans
                        /schema/beans/spring-beans-2.5.xsd
                        /schema/tx
                        /schema/tx/spring-tx.xsd
                        /schema/aop
                        /schema/aop/spring-aop.xsd">
<!-- 配置事务管理 -->
    <bean id="transactionManager"
        class="hibernate3.HibernateTransactionManager">
        <property name="sessionFactory">
            <ref local="sessionFactory" />
        </property>
    </bean>
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="save" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="*" read-only="true" />
        </tx:attributes>
    </tx:advice>
    <aop:config>
        <aop:pointcut id="allManagerMethod"
            expression="execution(* com.hubu.service.*.*(..))" />