首页 > 其他分享 >三,搭建环境:事务控制

三,搭建环境:事务控制

时间:2024-07-31 14:39:37浏览次数:10  
标签:一节 事务 Transactional 环境 注解 搭建

三,搭建环境:事务控制

@

目录


声明式事务配置

demo-module01-web 的模块下的,spring-persist.xml 配置文件中

开启基于注解的声明式事务支持

在这里插入图片描述

   <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 装配数据源 -->
        <property name="dataSource" ref="druidDataSource"/>
    </bean>

    <!-- 配置事务的注解驱动,开启基于注解的声明式事务功能 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <!--    开启基于注解的声明式事务支持-->
    <!-- 配置事务的注解驱动,开启基于注解的声明式事务功能 -->
    <tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
<?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:mybatis="http://mybatis.org/schema/mybatis-spring" 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 https://www.springframework.org/schema/context/spring-context.xsd http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">

    <!--    加载外部配置文件-->
    <context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>

    <!--    配置数据源-->
    <bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.passwords}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="initialSize" value="${jdbc.initialSize}"/>
        <property name="maxActive" value="${jdbc.maxActive}"/>
        <property name="maxWait" value="${jdbc.maxWait}"/>
    </bean>

<!--    配置 SqlSessionFactoryBean-->
    <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--        指定 Mapper 配置文件的位置 , Set注入 /mapper 下的所有文件-->
        <property name="mapperLocations" value="classpath:mapper/*Mapper.xml"></property>
<!--        装配数据源-->
        <property name="dataSource" ref="druidDataSource"></property>
    </bean>

<!--    配置 Mapper 接口的扫描-->
    <mybatis:scan base-package="com.rainbowsea.imperial.court.mapper"></mybatis:scan>


    <!-- 配置事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <!-- 装配数据源 -->
        <property name="dataSource" ref="druidDataSource"/>
    </bean>


    <!-- 配置事务的注解驱动,开启基于注解的声明式事务功能 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>


</beans>

如果报错:注意命名空间上的添加。

在这里插入图片描述

注解写法

查询操作

@Transactional(readOnly = true)

增删改操作

@Transactional(propagation = Propagation.REQUIRES_NEW, readOnly = false)

在具体代码开发中可能会将相同设置的 @Transactional 注解提取到 Service 类上。

对应顺序上一节内容:✏️✏️✏️ 对应顺序上一节内容:✏️✏️✏️ 二,SSM 搭建环境:持久化层-CSDN博客

对应顺序是下一节内容:✏️✏️✏️

标签:一节,事务,Transactional,环境,注解,搭建
From: https://www.cnblogs.com/TheMagicalRainbowSea/p/18334570

相关文章

  • 搭建 STM32 网关服务器的全流程:集成嵌入式 C++、TCP/IP 通信、Flash 存储及 JWT 认证(
    引言随着物联网(IoT)技术的快速发展,基于STM32的服务器(类似网关)在数据采集、设备控制等方面的应用越来越广泛。本文将介绍搭建一个基于STM32的服务器所需的技术栈,以及详细的搭建步骤和代码示例。技术栈介绍在搭建基于STM32的服务器时,我们需要用到以下技术栈和组件:1.硬......
  • 事务 隔离级别
    事务特性原子性:事务最小的工作单元,不可再分隔离性:事物之间相互隔离,保证互不干扰一致性:事务要求要么同时成功,要么同时失败持久性:持久性是事务结束的标志事务隔离级别脏读Read_uncommitted脏读提交读read_committed解决脏读异常:不可重复读可重复读repeatable_read解决......
  • 从0开始搭建vue + flask 旅游景点数据分析系统( 五):【用户管理页面、 景点管理页面、个
    本期任务是编写数据用户管理页面(Users)。编写数据景点管理页面(Tours)页面。编写数据个人设置页面(Profile)页面。1编写用户管理页面修改Users.vue:<template><divclass="users-container"><el-cardclass="box-card"><divslot="header"class="hea......
  • 如何在Linux云服务器上通过Docker Compose部署安装Halo,搭建个人博客网站?
    目录前置步骤环境搭建创建容器组在系统任意位置创建一个文件夹创建docker-compose.yaml启动Halo服务配置反向代理以及域名解析Halo初始化页面。更新新版本的halo前置步骤首先你需要一套linux服务器,这里默认你已经有了。如果没有可以在云服务器优惠合集选择,如果你是个人博客选......
  • HBuilderX 开发中使用 Node.js 搭建PDA扫码程序的服务端过程
    以下是使用HBuilderX和Node.js搭建程序服务端的大致步骤: 1. 安装Node.js首先,从Node.js官方网站下载并安装适合您操作系统的版本。在命令提示符中执行node-v,npm-v,检查nodejs版本是否安装完成。配置环境变量。2. 安装Oracle客户端根据您的操作系统,下载并安......
  • Flask框架入门:快速搭建轻量级Python网页应用
    转载: Flask框架入门:快速搭建轻量级Python网页应用1. Flask基础Flask是一个使用Python编写的轻量级Web应用框架。它的设计目标是让Web开发变得快速简单,同时保持应用的灵活性。Flask依赖于两个外部库:Werkzeug和Jinja2,Werkzeug作为WSGI工具包处理Web服务的底层细节,Jinja2作为......
  • 老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
    问题背景公司配发的电脑是macOS,日常开发需要访问Linux虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的VSCode都用不了。因此考虑基于vim搭建一套个人开发环境,需要支持以下特性:语法高亮(风格......
  • 老旧 Linux 系统搭建现代 C++ 开发环境 —— 基于 neovim
    问题背景公司配发的电脑是macOS,日常开发需要访问Linux虚拟机,出于安全方面的考虑,只能通过跳板机登录。这阻止了大多数远程图形界面的使用,让写代码的工作变得复杂起来,市面上非常好用的VSCode都用不了。因此考虑基于vim搭建一套个人开发环境,需要支持以下特性:语法高亮(风格......
  • optee环境基本组成
    本文介绍optee全部环境的各部分组成,及其相互之间的关系optee各部分组成TeelinuxdriverTee_SupplicantOptee_ClientOpteeOsCA&TATeelinuxdriver这是Linux内核中的一个驱动程序,负责与OP-TEE操作系统进行通信。它提供了用户空间与安全世界(即OP-TEEOS)之间的接......
  • 【大模型本地知识库搭建】ChatGLM3,M3E,FastGPT,One-API_fastgpt m3e
    目录引言一、ChatGLM3大模型本地部署二、部署M3E模型三、部署One-API四、部署FastGPT引言本文技术路线为:利用ChatGLM3-6b作为基座大模型,M3E作为向量模型,基于FastGPT建立用户知识库,One-API做统一API接口管理。其中ChatGLM3和M3E模型都是在windows下部署的,FastGPT......