Spring--Spring5事物管理(1)

简介: Spring--Spring5事物管理(1)

五、事务管理


5.1 事务操作(事务概念)


5.1.1 什么是事物?


事物是数据库操作最基本单元,逻辑上一组操作,要么都成功要么都失败,如果有一个失败所有操作都失败


5.1.2 事物的特性(ACID)


(1)原子性(Atomicity)

一组事物要么都成功要么都失败

(2)一致性(Consistency)

操作之前和操作之后它的总量是不变的

(3)隔离性(Isolation)

即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。

两人同时去操作同一条数据,这个过程是不会产生影响的

(4)持久性(Durability)

事物提交,表中数据发生变化


5.2 事务操作(Spring 事务管理介绍)


事务添加到JavaEE三层结构里面Service层(业务逻辑层)因为是业务层对数据进行操作

在 Spring进行事务管理操作

(1)有两种方式:编程式事务管理和声明式事务管理(使用)

3、声明式事务管理

(1)基于注解方式(使用)

(2)基于xml 配置文件方式

4、在 Spring进行声明式事务管理,底层使用AOP原理

5、Spring事务管理API

(1)提供一个接口,代表事务管理器,这个接口针对不同的框架提供不同的实现类

image.png


5.3 事务操作(注解声明式事务管理)


5.3.1 在spring配置文件配置事务管理器


<!--    创建事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--        注入数据源-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>


5.3.2 在 spring 配置文件,开启事务注解


(1)在 spring 配置文件引入名称空间 tx


<?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:component-scan base-package="com.caq"></context:component-scan>
    <!-- 数据库连接池 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
          destroy-method="close">
        <property name="url" value="jdbc:mysql:///user_db" />
        <property name="username" value="root" />
        <property name="password" value="root" />
        <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    </bean>
<!--    JdbcTemplate对象-->
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<!--        注入dataSource-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>
<!--    创建事务管理器-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--        注入数据源-->
        <property name="dataSource" ref="dataSource"></property>
    </bean>
<!--    开启事物注解-->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
</beans>

(2)开启事务注解


<!--    开启事物注解-->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>


5.3.3 在 service 类上面(或者 service 类里面方法上面)添加事务注解


@Transactional,这个注解添加到类上面,也可以添加方法上面

如果把这个注解添加类上面,这个类里面所有的方法都添加事务

如果把这个注解添加方法上面,为这个方法添加事务



相关文章
|
5月前
|
监控 Java 应用服务中间件
Spring和Spring Boot的区别
Spring和Spring Boot的主要区别,包括项目配置、开发模式、项目依赖、内嵌服务器和监控管理等方面,强调Spring Boot基于Spring框架,通过约定优于配置、自动配置和快速启动器等特性,简化了Spring应用的开发和部署过程。
120 19
|
10月前
|
XML Java 开发者
Spring 和 Spring Boot 的区别
【2月更文挑战第3天】
256 2
|
Java 数据库 Spring
Spring Boot 注解详解:一步一步了解Spring Boot的核心注解
1. 主要的注解:@SpringBootApplication 我们的入口类一般会被此注解所标注,如下所示:
284 1
|
XML Java 数据格式
|
XML Java 关系型数据库
Spring--Spring5事物管理(2)
Spring--Spring5事物管理(2)
107 0
|
设计模式 XML Java
Spring--Spring5入门
Spring--Spring5入门
127 0
|
SQL 前端开发 JavaScript
Spring基础篇:Spring和SpringMVC
如何理解Spring和SpringMVC
85 0
|
Java Spring
【Spring5】基于注解的Bean管理简直是Spring中的Spring(下)
文章目录 1 什么是注解 2 基于注解方式实现对象的创建 3 组件扫描配置的细节 4 基于注解实现属性的注入 4.1 几种注解概述 4.2 @Autowire注解演示 4.3 @Qualifier注解演示 4.4 @Value注解演示 5 纯注解的开发模式 写在最后
【Spring5】基于注解的Bean管理简直是Spring中的Spring(下)
|
XML 搜索推荐 Java
【Spring5】基于注解的Bean管理简直是Spring中的Spring(上)
文章目录 1 什么是注解 2 基于注解方式实现对象的创建 3 组件扫描配置的细节 4 基于注解实现属性的注入 4.1 几种注解概述 4.2 @Autowire注解演示 4.3 @Qualifier注解演示 4.4 @Value注解演示 5 纯注解的开发模式 写在最后
【Spring5】基于注解的Bean管理简直是Spring中的Spring(上)