SSH(Struts2+Hibernate+Spring)开发策略

   很多小伙伴可能一听到框架两个字就会马上摇头,脑子里立刻闪现一个词---“拒绝”,其实我也不例外,但我想告诉大家的是,当你真正掌握它时,你会发现**SSH**用起来是那么顺手,因为它对于开发web应用真的很方便,下面就我个人经验和大伙儿谈谈如何利用**SSH框架技术**来进行*web应用开发*吧。
   

首先是应该了解SSH框架技术的运行流程

在此我给大家介绍一种常见的SSH开发模式,这对于初学者来说应该也是比较好理解的。在进行使用SSH框架时最好先去了解一下Struts2+hibernate的工作原理,下面提供两个链接,大家可以了解一下“SH”的工作原理:
[Struts2工作原理]
http://www.cnblogs.com/langti…
[hibernate工作原理]
https://zhidao.baidu.com/ques…

另外一个就是SSH框架开发所需的jar包,这对于开发非常重要,没有一个完整正确的jar包是绝对不能顺利应用SSH框架,以下是我整理的完整jar包:
链接:http://pan.baidu.com/s/1bFujh0 密码:pisr

以外是利用SSH框架技术进行开发的一个过程:

  1. 在web.xml进行一些相关配置
    【1】首先进行Struts2核心过滤器的配置,作用是拦截一些action,核心代码如下:

          <!-- struts2核心过滤器的配置 -->
            <filter>
                 <filter-name>Struts2</filter-name>

    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

           </filter>
           <filter-mapping>
                 <filter-name>Struts2</filter-name>
                  <url-pattern>/*</url-pattern>
          </filter-mapping>
          
     【2】对于spring的核心监听器的配置
         <!-- spring的核心监听器的配置 -->
       <listener>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

<context-param>

  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:applicationContext.xml</param-value>

</context-param>

  1. 创建开发过程中所需要的包,在我的实例项目我创建了四个包,分别是:
    【1】cn.imooc.action 管理action的类包
    【2】cn.imooc.servie 管理service的类包
    【3】cn.imooc.dao 管理dao的类包
    【4】cn.imooc.domain 管理实体类的包
  2. 引入四个常用的配置文件,即applicationContext.xml struts.xml log4j.properties jdbc.properties
  3. 在各个包中创建所需要的类
  4. 在各个类完成ssh框架流程
  5. 在以上四个配置文件中完成相应的配置,在此我只说明各个配置文件完成什么功能:
    jdbc.properties:它是设置我们连接数据库的一个配置文件,里面包含了数据库的驱动、数据连接的地址,数据库的用户名,数据库的密码
    Struts2.xml:该文件中是说明拦截什么action
    log4j.properties:这个文件是我们的日志记录文件
    applicationContext.xml:这个是spring的核心配置文件,也是我们整个ssh框架开发的核心,它的作用就如胶水将Struts2和hibernate结合起来了。

    在这里就重点说明第四个文件的配置:
    <?xml version=”1.0″ encoding=”UTF-8″?>
    <beans xmlns=”http://www.springframework.org/schema/beans”
    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
    xmlns:aop=”http://www.springframework.org/schema/aop”
    xmlns:context=”http://www.springframework.org/schema/context”
    xmlns:p=”http://www.springframework.org/schema/p”
    xmlns:tx=”http://www.springframework.org/schema/tx”
    xsi:schemaLocation=”http://www.springframework.org/schema/beans http://www.springframework.or…

       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd">    
       
       

    <!– 引入外部的属性文件 –>
    <context:property-placeholder location=”classpath:jdbc.properties”/>

    <!– 配置c3p0连接池 –>

     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
             <property name="driverClass" value="${jdbc.driverClass}"></property>
             <property name="jdbcUrl" value="${jdbc.url}"></property>
             <property name="user" value="${jdbc.username}"></property>
             <property name="password" value="${jdbc.password}"></property>
     </bean>
      作用:是为了连接我们所需要连接的数据库
      
      
     <!-- 配置hibernate的一些相关属性 -->
     <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
             <!-- 注入连接池 -->
             <property name="dataSource" ref="dataSource"/>
             <!-- 配置hibernate的属性 -->
             <property name="hibernateProperties">
                 <props>
                     <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                     <prop key="hibernate.show_sql">true</prop>
                     <prop key="hibernate.format_sql">true</prop>
                     <prop key="hibernate.hbm2ddl.auto">update</prop>
                 </props>
             </property>
             
             该部分是为了完成hibernate框架中对象映射文件的功能
             <!-- 加载hibernate中的映射文件 -->
             <property name="mappingResources">
                     <list>
                         <value>cn/imooc/domain/Product.hbm.xml</value>
                     </list>
             </property>
     </bean>

    <!– 配置Action的类 –>
    <bean id=”productAction” class=”cn.imooc.action.ProductAction” scope=”prototype”>

       <!-- 手动注入service -->
       <property name="productService" ref="productService"></property>

    </bean>
    <!– 配置业务层的类 –>
    <bean id=”productService” class=”cn.imooc.service.ProductService”>

       <property name="productDao" ref="productDao"></property>

    </bean>
    <!– 配置DAO的类 –>
    <bean id=”productDao” class=”cn.imooc.dao.ProductDao”>

       <property name="sessionFactory" ref="sessionFactory"></property>

    </bean>

    <!– 配置事务管理器 –>
    <bean id=”transactionManager” class=”org.springframework.orm.hibernate3.HibernateTransactionManager”>

           <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

    <!– 开启注解事务 –>
    <tx:annotation-driven transaction-manager=”transactionManager”/>
    </beans>

以上就是ssh框架的大致开发过程,大家有问题可以放出来讨论一下,下面我将我的整个项目发给大家看看:
链接:http://pan.baidu.com/s/1jHM5wWY 密码:ykm9

    原文作者:james
    原文地址: https://segmentfault.com/a/1190000010813877
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞