OA--架構整理

      做OA這個項目有一段時間了,下面我來講講OA這個項目的架構。OA這個項目整體採用SSH來實現的,即spring、struts、hibernate。在這個架構中,我們需要通過hibernate實現數據持久化,通過hibernate維護實體之間的依賴關係;spring實現容器管理,管理各個bean,這裏我們通過註解的方式實現容器注入,容器管理;採用上struts實現對於業務的管理.在項目架構的過程中需要實現的spring和hibernate的融合,spring和struts融合。

    一、spring和hibernate融合:
          在applicationContext中設置數據庫連接(本地使用):
<span style="font-size:14px;"><bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
        <!-- 配置C3P0連接池 -->
        <property name="dataSource">
            <bean class="com.mchange.v2.c3p0.ComboPooledDataSourc">
                <property name="jdbcUrl" value=""></property>
                <property name="driverClass" value=""></property>
                <property name="user" value=""></property>
                <property name="password" value=""></property>
                
                <!-- 其他配置 -->
                <!-- 初始化時獲取是哪個連接,取值印在minpoolSize和maxPoolSize之間,Default:3 -->
                <property name="initialPoolSize" value="3"/>
                <!-- 連接池中保存的最小連接數,default:3 -->
                <property name="minpoolSize" value="3"/>
                <!-- 連接池中保存的最大連接數,default:3 -->
                <property name="maxPoolSize" value="3"/>
                <!-- 當連接池中的連接耗盡的時候,C3P0一次同事獲取的連接數,Default:3 -->
                <property name="acquireIncrement" value="3"/>
                <!-- 控制數據源內加載的PreparedStatements數量,如果maxStatements與maxStatementsPerConnection均爲0,則緩存被關閉 -->
                <property name="maxStatements" value="8"/>
                <!-- maxStatementsPerConnetion定義了連接池內單個連接所擁有的最大緩存statements數,default:0 -->
                <property name="maxStatementsPerConnetion" value="3"/>
                <!-- 最大空閒時間,1800秒內未被使用則連接被丟棄,default:0 -->
                <property name="maxIdleTime" value="1800"/>
            </bean>
        </property>
        </bean>  </span>
            好處:實現容器管理sessionfactory對象,是我們的sessionfactory是一個單例對象,在使用的時候實現的對象的一致性。才外可以使用聲明式事務,只要寫一個註解就能開啓事務,非常簡便!

    二、spring和struts的融合,實現實現容器管理action 
      1.在web.xml添加對applicationContext的核心監聽
 <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> 
       2.添加jar包:Struts2-spring-plugin-2.1.8.1.jar

  三、在架構的時候需要注意的小細節:
      (1)注意文件掃描範圍
<span style="font-size:14px;"> <context:component-scan base-package="cn.itcast.oa"></context:component-scan></span>
(2)因爲spring和hibernate融合後,sessionFactory交給容器管理,所以在字符集設置應該寫在數據庫連接文件jdbc.properties
jdbcUrl     = jdbc\:mysql\:///itcastoa11?useUnicode\=true&characterEncoding\=UTF-8

      


 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章