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...html

另一個就是SSH框架開發所需的jar包,這對於開發很是重要,沒有一個完整正確的jar包是絕對不能順利應用SSH框架,如下是我整理的完整jar包:
連接:http://pan.baidu.com/s/1bFujh0 密碼:pisrweb

之外是利用SSH框架技術進行開發的一個過程:spring

  1. 在web.xml進行一些相關配置
    【1】首先進行Struts2核心過濾器的配置,做用是攔截一些action,核心代碼以下:sql

    <!-- 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>apache

<context-param>session

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

</context-param>app

  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...dom

    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

相關文章
相關標籤/搜索