Java Web-Spring框架(三)

1、事务管理回顾

  • 事务:一组业务操作 ABCD,要么全部成功,要么全部不成功。
  • 特性:ACID(原子性、一致性、隔离性、持久性)
    原子性:整体;一致性:完成;隔离性:并发;持久性:结果
  • 隔离问题:
    脏读:一个事务读到另一个事务没有提交的数据
    不可重复读:一个事务读到另一个事务已经提交的数据(update)
    虚读(幻读):一个事务读到另一个事务已经提交的数据(insert)
  • 隔离级别
    read uncommitted:读未提交。存在3个问题
    read committed:读已提交。解决脏读,存在2个问题
    repeatable read:可重复读。解决:脏读、不可重复读,存在1个问题
    serializable:串行化。都解决,单事务
  • mysql事务的操作–简单
  • mysql事务操作–Savapoint

2、事务管理介绍

导入jar包

三个顶级接口
导入的jar包,有三个以下类:


PlatformTransactionManager 事务管理器

  • 导入jar包:需要的是平台事务管理器的实现类
  • 常见的事务管理器
  • API详解

TransactionStatus

TransactionDefinition

3、事务管理应用案例

3.1、搭建环境
创建表

导入jar包

dao层


servic层


spring配置

测试

3.2、手动管理事务(了解)
在上面的转账案例中,当出现异常时,可能导致汇款成功,收款不成功的错误。需要把这两个方法做成一个事务。要么都成功,要么都不成功。

  • spring底层使用 TransactionTemplate 事务模板进行操作
  • 操作
    a、service 需要获得 TransactionTemplate
    b、spring 配置模板,并注入给 service
    c、模板需要注入事务管理器
    d、配置事务管理器:DataSourceTransctionManager,需要注入DataSource

修改service

修改spring配置

3.3、工厂 bean 生成代理:半自动

  • spring提供 管理事务的代理工厂bean TransactionProxyFactoryBean
    a、getBean() 获得代理对象
    b、spring 配置一个代理

dao类

Service类

spring配置


测试

3.4、AOP配置基于xml【掌握】

  • 在spring xml 配置aop 自动生成代理,进行事务管理
    a、配置管理器
    b、配置事务详情
    c、配置aop

dao层

service层

配置文件


测试

3.5、AOP配置基于注解【掌握】
a、配置事务管理器,并将事务管理器交予spring
b、在目标类或目标方法添加注解即可,@Transactional
service层

spring配置

事务详情配置

4、整合Junit

导入jar包
基本:4 + 1
测试:spring-test…jar
a、让Junit通知spring加载配置文件
b、让spring容器自动进行注入

修改测试类

5、整合web

导入jar包

tomcat 启动加载配置文件
以下是三种方式可以加载配置文件,使用第三种listener:

如果只配置监听器,默认加载的xml位置为:
确定配置文件位置,通过系统初始化参数
ServletContext 初始化参数 web.xml

从servletContext 作用域获得spring 容器(了解)
使得在网页中点击链接即可实现汇款功能

6、SSH整合

6.1、jar整合

struts


spring


hibernate

整合包

  • spring整合 hibernate:spring orm
  • struts整合 spring:struts2-spring-plugin-2.3.15.3.jar

删除重复的jar包

6.2、spring整合hibernate:有hibernate.cfg.xml

创建表

PO类

  • javabean
  • 映射文件
    在这里插入图片描述

dao层

  • spring 提供HibernateTemplate 用于操作PO 对象,类似Hibernate Session对象

service层


hibernate.cfg.xml

applicationContext.xml

  • 添加命名空间
  • 加载hibernate配置文件
  • dao和service
  • 事务管理
  • 测试

6.3、spring整合hibernate:没有hibernate.cfg.xml【】

  • 删除 hibernate.cfg.xml文件,但需要保存文件内容,将其配置到spring中
  • 修改dao层,继承 HibernateDaoSupport

修改spring,配置SessionFactory


修改dao,使用HibernateDaoSupport

  • 继承 HibernateDaoSupport
  • spring 删除模板,给dao注入SessionFactory

6.4、struts整合spring:spring创建action

  • 编写action类,并将其配置给 spring,spring可以注入service
  • 编写 structs.xml
  • 表单jsp 页面
  • web.xml配置
    a、确定配置文件位置 contextConfigLocation
    b、配置监听器 ContextLoaderListener
    c、配置前端控制器 StrutsPrepareAndExecuteFitler

通用

功能

spring配置

struts配置

jsp表单


配置web.xml


6.5、struts整合spring:struts创建action【】
删除 spring action配置
删除下图内容:

structs <action class="全限定类名"

要求
Action类中,必须提供service名称与spring 配置文件一致。(如果名称一样,将自动注入)

分析

  • struts 配置文件:
    default.properties ,常量配置文件
    struts-default.xml ,默认核心配置文件
    struts-plugins.xml ,插件配置文件
    struts.xml,自定义核心配置文件
    常量的使用,后面配置项,将覆盖前面的。
  • default.properties ,此配置文件中确定 按照【名称】自动注入
  • struts-plugins.xml ,struts整合spring

    总结,之后action有spring创建,并按照名称自动注入。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值