SSH回顾

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

 

 

 

 

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驱动    
  • 日志记录SSH整合:Spring整合Struts2的两种方式,struts.xml管理Action&Bean管理Action

     

  • 注意:Struts2和Hibernate都引入了一个相同的javasistjar包(javasist版本不一样容易冲突),删掉一个版本低的
  • 使用C3P0连接池,还需要引:SSH整合:Spring整合Struts2的两种方式,struts.xml管理Action&Bean管理Action

     

Spring的jar包

  • IOC的开发
  • AOP的开发
  • JDBC模版的开发
  • 整合web项目的开发
  • 整合单元测试
  • 整合Hibernate的开发

 IOC的6个基本包

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

AOC的包

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

JDBC开发,事务管理:

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

 

整合单元测试:spring-test-4.2.4.RELEASE.jar

 

整合web项目:

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

整合Hibernate的开发:

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

 

 进行Spring和Struts2的整合:

引入整合的插件包SSH整合:Spring整合Struts2的两种方式,struts.xml管理Action&Bean管理Action

 

第二步:引入配置文件

Struts2的配置文件:

  • web.xml
  • struts.xml

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

Hibernate的配置文件:

  • hibernate.cfg.xml,删掉与线程绑定的session
  • 映射文件
  • 日志文件

 

Spring的配置文件:

  • web.xml
  • applicationContext.xml
  • 日志记录(一个就行,如果引过) log4j.properties

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

 

第三步:创建包结构和类

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

第四步: 引入相关的页面

 

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

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

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

 

第六步:编写Action,添加到提交数据到action

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

 

 

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

 编写Action:

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

 在action中引入Service

传统方式:

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

 

 进行Spring和Struts2的整合:

引入整合的插件包SSH整合:Spring整合Struts2的两种方式,struts.xml管理Action&Bean管理Action

在插件包中有如下配置:

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

开启了一个常量,在Struts2中开启这个常量,就会引发下面常量生效

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

让action按照名称自动注入service

 将service交给Spring管理:

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

Action中注入Service

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

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

 

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

 

第八步:Spring整合Struts2方式二:Action交给Spring创建(推荐,如果用Struts2创建Action不如用Spring工厂配置,因为可以用AOP增强action)

引入插件包SSH整合:Spring整合Struts2的两种方式,struts.xml管理Action&Bean管理Action

将Action交给Spring

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

 

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

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

注意:

1 原来的Action是多例的,现在是单例的,一个Action只有一个值栈,如果你保存,删除,修改都用一个值栈,在取值的时候就会出现问题。

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

2 需要手动注入Service

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

测试:

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

第九步:Service调用Dao

将Dao交给Spring管理

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

在Service层注入Dao

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

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

 

第十步:Spring整合Hibernate框架

  • 创建数据库和表
  • 编写实体和映射

 Spring和Hibernate整合

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

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

在Spring和Hibernate整合后,Spring提供了一个Hibernate的模板类,用来简化Hibernate开发,改写Dao继承HibernateDaoSupport

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

配置的时候在Dao中直接注入SessionFactory,就会创建Hibernate模版类

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

在Dao中使用Hibernate的模版实现保存操作

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

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

配置事务管理器

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

开启注解事务

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

在业务层使用注解

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

测试:

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

 

<?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>

 

相关文章:

  • 2021-04-22
  • 2021-10-02
  • 2021-09-01
  • 2021-06-30
  • 2022-01-01
  • 2021-11-29
  • 2021-10-19
猜你喜欢
  • 2021-06-26
  • 2022-12-23
  • 2022-12-23
  • 2021-10-19
  • 2021-09-12
  • 2021-10-30
  • 2021-10-01
相关资源
相似解决方案