一共有6步(文章底部附有源碼下載地址,剛學(xué)完ssh的可以借鑒)1寫(xiě)一個(gè)Hibernate應(yīng)用,完成用戶的增加1)User實(shí)體2)UserDao接口save(Useru)3)UserDaoImpl實(shí)現(xiàn)UserDaosave(Useru){//用hibernateapi}2讓spring注入SessionFactory1)在上一個(gè)應(yīng)用中導(dǎo)入Spring的jar包除了基礎(chǔ)的6個(gè)包,還得導(dǎo)入2個(gè)jar包org.springfram" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

SSH六部曲

系統(tǒng) 1819 0
      <strong>
      
        

一共有6步(文章底部附有源碼下載地址,剛學(xué)完ssh的可以借鑒)
      
      </strong>



1
      
         寫(xiě)一個(gè)Hibernate應(yīng)用,完成用戶的增加

    
      
      1
      
        ) User實(shí)體

    
      
      2
      
        )UserDao接口

        save(User u)

    
      
      3
      
        )UserDaoImpl實(shí)現(xiàn)UserDao

        save(User u){

            
      
      
        //
      
      
        用hibernate api
      
      
                }

        


      
      2
      
         讓spring注入SessionFactory



    
      
      1
      
        )在上一個(gè)應(yīng)用中導(dǎo)入Spring的jar包

        除了基礎(chǔ)的6個(gè)包,還得導(dǎo)入2個(gè)jar包

        org.springframework.jdbc
      
      -3.0.5
      
        .RELEASE.jar

        org.springframework.orm
      
      -3.0.5
      
        .RELEASE.jar

        org.springframework.transaction
      
      -3.0.5
      
        .RELEASE.jar

        

        

    
      
      2
      
        ) 增加配置文件beans.xml

        
      
      <bean id="sessionFactory"

            
      
        class
      
      ="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

                <property name="configLocation"  value="classpath:hibernate.cfg.xml"/>

        </bean>

        

        

        <bean id="userDao" 
      
        class
      
      ="包名.UserDaoImpl">

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

        </bean>

        

    3
      
        ) 在測(cè)試方法中,獲得userDao,然后測(cè)試save()

    

            UserDao userDao
      
      = (UserDao)cxt.getBean("userDao"
      
        );

            


      
      3
      
         添加數(shù)據(jù)源,并注入到SessionFactory    



    
      
      1
      
        ) 需要導(dǎo)入2個(gè)包

            commons
      
      -
      
        dbcp.jar

            commons
      
      -
      
        pool.jar

    

        注:數(shù)據(jù)源的第3方實(shí)現(xiàn)有非常多,現(xiàn)我們用其中一種,commons
      
      -
      
        dbcp

    

    
      
      2
      
        ) 配置Datasource

    
      
      <bean id="myDataSource" 
      
        class
      
      ="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>

        <property name="url" value="jdbc:mysql://localhost:3306/spring_db"/>

        <property name="username" value="root"/>

        <property name="password" value="123456"/>

    </bean>

    

    3
      
        )在SessionFactory Bean中注入dataSource

    

    
      
      <bean id="mySessionFactory" 
      
        class
      
      ="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

        <!-- 注入DataSource Bean-->

        <property name="dataSource" ref="myDataSource"/>

        

        <property name="mappingResources">

            <list>

                <value>com/toceansoft/entity/User.hbm.xml</value>

            </list>

        </property>

        

        <property name="hibernateProperties">

            <value>
      
        

                hibernate.dialect
      
      =
      
        org.hibernate.dialect.MySQLDialect

                hibernate.hbm2ddl.auto
      
      =
      
        update

                hibernate.show_sql
      
      =
      
        true
      
      

            </value>

        </property>

    </bean>

    

    4
      
        ) 測(cè)試結(jié)果

    


      
      4
      
         使用spring提供的HibernateTemplate



    
      
      1
      
        ) 在Dao中添加

    
      
      
        private
      
      
         HibernateTemplate hibernateTemplate;

    
      
      
        public
      
      
        void
      
      
         setSessionFactory(SessionFactory sessionFactory) {

        
      
      
        this
      
      .hibernateTemplate = 
      
        new
      
      
         HibernateTemplate(sessionFactory);

    }

    

    
      
      2
      
        )修改方法,改成使用hibernateTemplate

        save(o)

            hibernateTemplate.save(o);

            


      
      5
      
         使用spring在業(yè)務(wù)層切入事務(wù)



    
      
      1
      
        )在業(yè)務(wù)層寫(xiě)一個(gè)接口UserService

        
      
      
        public
      
      
        void
      
      
         add(User u);

    
      
      2
      
        ) 寫(xiě)一個(gè)實(shí)現(xiàn)類UserServiceImpl實(shí)現(xiàn)接口UserService

        
      
      
        public
      
      
        void
      
      
         add(User u){}

    
      
      3)實(shí)現(xiàn)類UserServiceImpl提供userDao的get/
      
        set方法

    

    
      
      4
      
        )在beans.xml中配置UserServiceImpl 的Bean,并注入userDao

    

    
      
      5
      
        )配置事務(wù)管理器Bean

    
      
      <bean id="txManager" 
      
        class
      
      ="org.springframework.orm.hibernate3.HibernateTransactionManager">

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

    </bean>

    6
      
        ) 配置事務(wù)通知

    
      
      <tx:advice id="txAdvice" transaction-manager="txManager">

        <!-- 包括隔離級(jí)別,事務(wù)傳播屬性。。。 -->

        <tx:attributes>

            <tx:method name="add*" propagation="REQUIRED"/>

            <tx:method name="*" propagation="SUPPORTS" read-only="true"/>

        </tx:attributes>

    </tx:advice>

    7
      
        )配置aop切面

    
      
      <aop:config>

        <aop:pointcut id="serviceMethods"
      
        

            expression
      
      ="execution(* com.toceansoft.service.impl.*.*(..))"/>

        <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethods"/>

    </aop:config>

    8
      
        )測(cè)試結(jié)果

    
      
      9
      
        )在add方法內(nèi)拋出異常,再測(cè)試觀察結(jié)果

        
      
      
        throw
      
      
        new
      
      
         RuntimeException();

        


      
      6
      
         整合Spring與Struts

    
      
      1
      
        )在把上面的java 應(yīng)用變成web應(yīng)用

            
      
      --
      
        把上面應(yīng)用Src下的所有東東復(fù)制到web應(yīng)用的src

            

    
      
      2
      
        )導(dǎo)入struts2開(kāi)發(fā)的基礎(chǔ)jar包,還需要一個(gè)特殊包

        struts
      
      -spring-
      
        plugin.jar

        

        導(dǎo)入與struts2整合的spring相應(yīng)的包

        org.springframework.web.struts
      
      -3.0.5
      
        .RELEASE.jar

        org.springframework.web
      
      -3.0.5
      
        .RELEASE.jar

        

    
      
      3) 把beans.xml 復(fù)制到WEB-
      
        INF,并且改名為applicationContext.xml(可選的)

    

    
      
      4
      
        ) 在web.xml中配置spring啟動(dòng)的監(jiān)聽(tīng)器

    
      
      <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>/WEB-INF/applicationContext.xml,classpath*:applicationContext2.xml</param-value>

    </context-param>

    <listener>

    <listener-
      
        class
      
      >org.springframework.web.context.ContextLoaderListener</listener-
      
        class
      
      >

    </listener>

    

    5
      
        )在web.xml配置Struts2的啟動(dòng)

    
      
      <filter>

        <filter-name>struts2</filter-name>

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

        <!--  <filter-
      
        class
      
      >org.apache.struts2.dispatcher.FilterDispatcher</filter-
      
        class
      
      >-->

    </filter>

    

    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>
      
        /*
      
      
        </url-pattern>

    </filter-mapping>

    

    6)在Web包下寫(xiě)UserAction,并且提供業(yè)務(wù)層UserSerivce的set方法

    

    7)在appplicationContext.xml中配置UserAction bean

    <bean id="userAction" class="com.toceansoft.web.action.UserAction" scope="prototype">

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

    </bean>

    注:scope="prototype"

    

    8) 在struts.xml中配置UserAction

    <!-- 跳轉(zhuǎn)到添加產(chǎn)品頁(yè)面 -->

        <action name="User_toAdd" >

            <result>/User_add.jsp</result>

        </action>

        

        <!-- 添加產(chǎn)品 -->

        <!-- 關(guān)鍵點(diǎn):這里的class設(shè)置action bean在spring配置文件中bean的id -->

        <action name="User_add" class="userAction" method="add">

            <result name="success">/grobal_message.jsp</result>

        </action>

        

    9) 寫(xiě)2個(gè)頁(yè)面

    User_add.jsp

    grobal_message.jsp

    

    10)部署測(cè)試
      
    

?

SSH六部曲


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久精品国产午夜伦班片 | 日日夜夜亚洲 | 青青青国产在线手机免费观看 | 亚洲国产天堂在线mv网站 | 亚洲国产精品婷婷久久 | 国产麻豆精品hdvideoss | 6080欧美一区二区三区四区 | 国产日韩三级 | 狠狠狠地啪香蕉 | 毛片免费观看 | 99热国产这里只有精品 | 天天在线天天综合网色 | 欧美一区日韩一区中文字幕页 | 国产福利专区精品视频 | 色婷婷综合在线 | 伊人久久国产免费观看视频 | 日本欧美在线播放 | 精品无人区乱码一区二区 | 农村高清性色生活片 | 天天干夜夜爽 | 成熟日本语热亚洲人 | 91精品综合久久久久3d动漫 | 在线观看视频一区 | 国产亚洲精品久久综合影院 | 第一福利视频网 | 黑人巨大精品战中国美女 | 狠狠久久亚洲欧美专区 | 亚洲在线精品视频 | 中文字幕日韩国产 | 精品无人区乱码一区二区三区手机 | 色另类 | 国产成人综合一区精品 | 久久在线资源 | 国产夜色 | 鲁啊鲁啊鲁在线视频播放 | 看真人视频一级毛片 | 一道本免费视频 | h视频网站在线观看 | 四虎影院地址 | 91亚洲精品视频 | 999奇米 |