SSH總結

其實在這個三個框架中最爲重量級的就是Spring,它將Struts的action當作bean整合,將hibernate的cfg,hbm整合,還有事務管理,下面一一整合到項目當中去,

例如:創建個用戶管理系統(暫時只提供查詢功能和刪除功能)

一丶先設計Dao層

用戶:User類

private String username;
private String password;
private String realname;

生成hibearnate-mapping文件

<hibernate-mapping>
    <class name="bean.User" table="user">

         <id name="id" type="java.lang.Integer">
        <column name="id" ></column>
         <generator class="native" />
        </id>

        <property name="username" type="java.lang.String">
        <column name="username"></column>
        </property>

        <property name="password" type="java.lang.String">
        <column name="password"></column>
        </property>

        <property name="realname" type="java.lang.String">
        <column name="realname"></column>
        </property>

        </class>

</hibernate-mapping>

設計Dao接口
1.查詢單個用戶
2.查詢全部用戶
3.刪除單個用戶
4.刪除全部用戶

整合hibernate和spring:
思路分析:
在Dao層用到SessionFactory,需要在spring文件dao層依賴注入sessionfactory
而sessionFactory需要datasource,cfg,hbm

具體實施:
1.在applicationContext.xml
因爲讀取Property文件所以加入該行代碼

<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">

<property name="user" value="${jdbc.user}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="driverClass" value="${jdbc.driverClass}"></property>
<property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>

<property name="initialPoolSize" value="${jdbc.initPoolSize}"></property>
<property name="maxPoolSize" value="${jdbc.maxPoolSize}"></property>

</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocations" value="classpath:hibernate.cfg.xml"></property>
<property name="mappingResources">
<list>
<value>bean/User.hbm.xml</value>
</list>
</property>
</bean>

——————Dao層設計完畢——————–

二丶設計Service層
分析
無非就是事務屬性的增強
首先定義一個事務屬性
然而需要個事務管理器
所以
首先定義事務管理器,然後,定義事務屬性,最後,aop操作。

<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<tx:advice transaction-manager="transactionManager" id="txadvice1">
<tx:attributes>
<tx:method name="get*" read-only="true"/>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>

<aop:pointcut expression="execution (*  service.*.*(..))" id="pointcut1"/>

<aop:advisor advice-ref="txadvice1" pointcut-ref="pointcut1"/>

</aop:config>

—–Service配置完畢——

三丶配置Controll層
思路:
Controll的配置無非就是配置Action,配置Bean,在Struts配置Action
我們之前說過Spring就是管理Action 所以將Action的位置交友spring
然後將struts與spring建立鏈接就行了。
設計:

    <bean id="useraction" class="action.UserAction" scope="prototype">

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

    </bean>
<struts>
 <constant name="struts.enable.DynamicMethodInvocation" value="false" />

    <constant name="struts.devMode" value="true" /> 

<package name="defalut" namespace="/" extends="struts-default">

<action name="userAction_*" class="useraction" method="{1}">
<result name="list">/show.jsp</result>
<result name="delete" type="redirectAction">/userAction_findAll.action</result>
</action>
</package>

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