spring4声明式事务—02 xml配置方式

简介: 1.配置普通的 controller,service ,dao 的bean. 2.

1.配置普通的 controller,service ,dao 的bean.

<!-- 配置 dao ,service -->
    <bean id="bookShopDao" class="com.liujl.spring.tx.xml.BookShopDaoImpl">
        <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>
    
    <bean id="bookShopService" class="com.liujl.spring.tx.xml.serivice.impl.BookShopServiceImpl">
        <property name="bookShopDao" ref="bookShopDao"></property>
    </bean>
    
    <bean id="cashier" class="com.liujl.spring.tx.xml.serivice.impl.CashierImpl">
        <property name="bookShopService" ref="bookShopService"></property>
    </bean>

2.配置事务管理器bean

<!-- 配置事务管理器 hibernate、jpa都是类似的这样配 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

3.引入 tx 命名空间

xmlns:tx="http://www.springframework.org/schema/tx"

4.配置事务各个属性(方法名可以使用通配符*)

<!-- 配置事务属性 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="purchase" propagation="REQUIRED"/>
            <tx:method name="checkout" propagation="REQUIRED"/>
            <tx:method name="get*" read-only="true"/>            
            <tx:method name="find*" read-only="true"/>            
        </tx:attributes>
    </tx:advice>

5.引入aop命名空间

xmlns:aop="http://www.springframework.org/schema/aop"

6.配置事务的切点,并把事务切点和事务属性关联起来

<!-- 配置事务的切点,并把事务切点和事务属性不关联起来 -->
    <aop:config>
        <aop:pointcut expression="execution(* com.liujl.spring.tx.xml.serivice.*.*(..))" id="txPointCut"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
    </aop:config>
  
    1.使用  声明事务的,默认即 REQUIRED 即被包含在上面的事务中,放弃自己处理事务
    REQUIRES_NEW 以本方法为执行单位,开启一个新事务(外部事务在方法执行前后被挂起)
    
    2.使用  指定事务的,最常用的取值为 READ_COMMITTED 读与提交

    3.默认情况下Spring 的声明式事务对所有的一样长进行。
    也可以对应的属性指定配置,通常情况下取默认值即可。使用 noRollbackFor 指定不回滚的异常,其他的类似

    4.使用  指定事务是否为,表示这个事务只读取数据但不更新数据,
    这样可以帮助数据库引擎优化事务。若真的是一个只读取数据库值得方法,应设置readOnly=true
    
    5.使用  指定强制回滚之前事务可以占用的
开始做,坚持做,重复做
相关文章
|
16天前
|
存储 Java 数据安全/隐私保护
|
1天前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
10 1
|
3天前
|
SQL Java 关系型数据库
Spring 事务
Spring 事务
6 1
|
3天前
|
Java Spring
Spring文件配置以及获取
Spring文件配置以及获取
10 0
|
5天前
|
Java 数据库连接 数据库
Spring事务简介,事务角色,事务属性
Spring事务简介,事务角色,事务属性
15 2
|
9天前
|
Java 数据库连接 数据库
16:事务-Java Spring
16:事务-Java Spring
26 5
|
9天前
|
Java 微服务 Spring
Spring Boot中获取配置参数的几种方法
Spring Boot中获取配置参数的几种方法
20 2
|
11天前
|
消息中间件 Java 关系型数据库
Spring事务与分布式事务
这篇文档介绍了事务的概念和数据库事务的ACID特性:原子性、一致性、隔离性和持久性。在并发环境下,事务可能出现更新丢失、脏读和不可重复读等问题,这些问题通过设置事务隔离级别(如读未提交、读已提交、可重复读和序列化)来解决。Spring事务传播行为有七种模式,影响嵌套事务的执行方式。`@Transactional`注解用于管理事务,其属性包括传播行为、隔离级别、超时和只读等。最后提到了分布式事务,分为跨库和跨服务两种情况,跨服务的分布式事务通常通过最终一致性策略,如消息队列实现。
|
11天前
|
消息中间件 安全 Java
在Spring Bean中,如何通过Java配置类定义Bean?
【4月更文挑战第30天】在Spring Bean中,如何通过Java配置类定义Bean?
20 1
|
12天前
|
监控 Java 测试技术
Spring Boot与事务钩子函数:概念与实战
【4月更文挑战第29天】在复杂的业务逻辑中,事务管理是确保数据一致性和完整性的关键。Spring Boot提供了强大的事务管理机制,其中事务钩子函数(Transaction Hooks)允许开发者在事务的不同阶段插入自定义逻辑。本篇博客将详细探讨事务钩子函数的概念及其在Spring Boot中的应用。
34 1