Struts+Hibernate+Spring结合开发的环境搭建

Struts+Hibernate+Spring组合开发的环境搭建

Struts+Hibernate+Spring组合开发的环境搭建


      由于SSH组合开发在实际的大型项目中是用得最多的,所有SSH的环境搭配对于开发人员来说也是比较重要的。
SSH的环境搭配主要包括两个方面:Struts与Spring的组合;Hibernate与Spring的组合.
SSH的组合工作主要有两步:导入需要的Jar包;实现SSH的组合


第一步,导入需要的Jar包
在MyEclipse中,导入SSH的顺序应该是Spring、Hibernate、Struts。
导入的操作比较简单,其中最需要注意的就是在导入Hibernate的时候要选择通过Spring的applicationContext.xml文件对Hibernate进行管理,即不需要创建hibernate.cfg.xml的原因。这也是为什么Spring在Hibernate之前导入的原因了。


第二步,实现SSH的组合,这也是SSH组合的重点
首先是Struts与Spring的组合,他们的组合无非就是将Struts的Action交给Spring管理,这需要添加一个插件,在struts-config.xml文件中生成等如下的代码:

    <plug-in
        className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation"
            value="/WEB-INF/classes/applicationContext.xml" />
    </plug-in>

 


在上述代码中是添加了一个ContextLoaderPlugIn插件,并添加了一个属性contextConfigLocation,其指向的是/WEB-INF/classes/applicationContext.xml,即Spring的控制文件,除此之外,还需要添加一个controller,所以最终在struts-config.xml文件生成的代码为:
 

   <controller
        processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
    </controller>

    <plug-in
        className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation"
            value="/WEB-INF/classes/applicationContext.xml" />
    </plug-in>

 


其中的controller的作用是对所有的Struts的请求都交给Spring管理。
struts-config.xml文件修改完了以后,还需要在web.xml文件中添加一个context-param,具体代码如下:

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            /WEB-INF/classes/applicationContext.xml
        </param-value>
</context-param>

<servlet>
  <servlet-name>context</servlet-name>
  <servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>

 


这一点是与struts-config.xml文件中的plugin中的属性相对应的。
到此为止,Struts与Spring的组合搭配就算完成了。
然后就是Hibernate与Spring的搭配了,现在的applicationContext.xml文件应该为如下的内容:
 

    <bean id="dataSource"
         class="org.springframework.jndi.JndiObjectFactoryBean">
         <property name="jndiName" value="java:comp/env/jdbc/demo"></property>
     </bean>
     <bean id="sessionFactory"
         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
         <property name="dataSource">
             <ref bean="dataSource" />
         </property>
         <property name="hibernateProperties">
            <props></props>
         </property>
     </bean>

 


在上述代码中,应在sessionFactory的HibernateProperties属性中添加相应内容,最后的效果如下:

 <bean id="sessionFactory"
         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
         <property name="dataSource">
             <ref bean="dataSource" />
         </property>
         <property name="hibernateProperties">
             <props>
                 <prop key="hibernate.dialect">
                     org.hibernate.dialect.MySQLDialect
                 </prop>
                 <prop key="hibernate.connection.autocommit">true</prop>
                 <prop key="hibernate.show_sql">true</prop>
             </props>
         </property>
         <property name="mappingResources">
             <list>
             </list>
         </property>
     </bean>

 


接着在applicationContext.xml文件添加如下的节点:

     <bean id="hibernateTemplate"  class="org.springframework.orm.hibernate3.HibernateTemplate">
         <property name="sessionFactory">
             <ref bean="sessionFactory" />
         </property>
     </bean>

 


最后是在web.xml文件添加对session的管理代码:
 

    <filter>
         <filter-name>opensession</filter-name>
         <filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
     </filter>
     <filter-mapping>
         <filter-name>opensession</filter-name>
         <url-pattern>*.jsp</url-pattern>
     </filter-mapping>

 

完成这一步以后,那么整个SSH组合的搭配基本也就结束了,你就可以利用Spring的强大功能完成对Struts和Hibernate的控制了。
在以后的文章中我会介绍这样组合以后如何使用各个框架,以上这些也是我在学习SSH的过程中的一些总结吧,希望能对各位同样的JAVA爱好有一定的帮助。

 

-------------------------------
添加过滤器