SSH整合:Spring整合Struts2的兩種方式,struts.xml管理Action&Bean管理Action


SSH回顧

 

 

 

 

1 引入jar包

Struts2的jar包

  • D:\Struts2\struts-2.3.35\apps\struts2-blank\WEB-INF\lib  開發基本包
  • Struts2有一些包是需要了解的:
  • struts2-convention-plugin-2.3.35   注解開發包      
  • struts2-json-plugin-2.3.35.jar  整合ajax  
  • struts2-spring-plugin-2.3.35.jar  整合Spring

Hibernate的jar包

  •       D:\Hibernate\hibernate-release-5.0.7.Final\lib\required  開發必須
  •  mysql-connector-java-5.1.43-bin   mysql驅動    
  • 日志記錄

     

  • 注意:Struts2和Hibernate都引入了一個相同的javasistjar包(javasist版本不一樣容易沖突),刪掉一個版本低的
  • 使用C3P0連接池,還需要引:

     

Spring的jar包

  • IOC的開發
  • AOP的開發
  • JDBC模版的開發
  • 整合web項目的開發
  • 整合單元測試
  • 整合Hibernate的開發

 IOC的6個基本包

AOC的包

JDBC開發,事務管理:

 

整合單元測試:spring-test-4.2.4.RELEASE.jar

 

整合web項目:

整合Hibernate的開發:

 

 進行Spring和Struts2的整合:

引入整合的插件包

 

第二步:引入配置文件

Struts2的配置文件:

  • web.xml
  • struts.xml

Hibernate的配置文件:

  • hibernate.cfg.xml,刪掉與線程綁定的session
  • 映射文件
  • 日志文件

 

Spring的配置文件:

  • web.xml
  • applicationContext.xml
  • 日志記錄(一個就行,如果引過) log4j.properties

 

第三步:創建包結構和類

第四步: 引入相關的頁面

 

第五步:修改menu.jsp,修改add.jsp

 

第六步:編寫Action,添加到提交數據到action

 

 

第七步:Spring整合Struts2 方式一:Action由Struts2創建(Service由Spring,在Action類中注入Service)

 編寫Action:

 在action中引入Service

傳統方式:

 

 進行Spring和Struts2的整合:

引入整合的插件包

在插件包中有如下配置:

開啟了一個常量,在Struts2中開啟這個常量,就會引發下面常量生效

讓action按照名稱自動注入service

 將service交給Spring管理:

Action中注入Service

 

 

第八步:Spring整合Struts2方式二:Action交給Spring創建(推薦,如果用Struts2創建Action不如用Spring工廠配置,因為可以用AOP增強action)

引入插件包

將Action交給Spring

 

struts.xml配置Action,使用Spring創建的

注意:

1 原來的Action是多例的,現在是單例的,一個Action只有一個值棧,如果你保存,刪除,修改都用一個值棧,在取值的時候就會出現問題。

 

2 需要手動注入Service

 

測試:

第九步:Service調用Dao

將Dao交給Spring管理

在Service層注入Dao

 

 

第十步:Spring整合Hibernate框架

  • 創建數據庫和表
  • 編寫實體和映射

 Spring和Hibernate整合

在Spring配置文件中引入Hibernate配置信息

 

在Spring和Hibernate整合后,Spring提供了一個Hibernate的模板類,用來簡化Hibernate開發,改寫Dao繼承HibernateDaoSupport

配置的時候在Dao中直接注入SessionFactory,就會創建Hibernate模版類

在Dao中使用Hibernate的模版實現保存操作

第十步:配置Spring的事務管理

配置事務管理器

開啟注解事務

在業務層使用注解

測試:

 

<?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:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop.xsd
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx.xsd">


     <!--通過context標簽引入jdbc.properties -->
     <context:property-placeholder location="classpath:jdbc.properties"/>
         
<!--      <context:annotation-config/>     -->
     
     <!-- 配置C3P0連接池 -->
     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
       <property name="driverClass" value="${jdbc.driverClass}"/>
       <property name="jdbcUrl" value="${jdbc.url}"/>
       <property name="user" value="${jdbc.user}"/>
       <property name="password" value="${jdbc.password}"/>
     </bean>
    
    <!-- 配置Action -->
    <bean id="customerAction" class="com.ssh.web.action.CustomerAction" scope="prototype">
       <property name="customerService" ref="customerService"/>
    </bean>
    
    <!-- 注入CustomerService -->
    <bean id="customerService" class="com.ssh.service.impl.CustomerServiceImpl">
    <property name="customerDao" ref="customerDao"/>
    </bean>
    
    <!-- 注入Dao -->
    <bean id="customerDao" class="com.ssh.dao.impl.CustomerDaoImpl">
    
    </bean>
    
</beans>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM