`
i3587616
  • 浏览: 21459 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

spring只读的设置

 
阅读更多
because:jdbc的connection可以通过调用setReadOnly(true)来切换到只读事务模式上来,但是大多数jdbc driver会忽略掉它。

so:
对于只读来说,事务的传播属性应设为:PROPAGATION_SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
对只读就没必要起事务了,如果是外层已有事务,那就在事务中运行吧。
起事务会起日志(以备回滚)等操作带来不必要开销。


so why?
那为什么不对只读事务什么都不设哪。而通常却设成:
PROPAGATION_SUPPORTS,readOnly
据说是因为这样设可以优化hibernate,使其never flush,但是事务管理器应该配成:
HibernateTransactionManager而非DataSourceTransactionManager.



分享到:
评论

相关推荐

    spring-tx.rar

    4. 只读事务:对于只读操作,设置事务为只读可以提高性能。 五、实战应用 在实际项目中,我们通常会结合Spring的XML配置或Java配置来启用事务管理,并指定默认的事务属性。然后,在需要事务管理的方法上添加@...

    spring声明事务的配置

    例如,对于只读操作,你可以设置`PROPAGATION_REQUIRED,readOnly`,这样所有以特定前缀(如`find*`、`get*`等)的方法都会在一个只读事务中执行。这种方式减少了重复配置,提高了效率。 3. **事务传播行为** - `...

    spring事务详解

    - 只读事务:通过设置事务为只读模式,可以提高事务的性能,尤其是对于那些只进行数据读取操作的事务。 - 超时设置:可以为事务设置一个最大执行时间,超过时间则自动回滚事务。 总之,Spring事务框架提供了一套...

    spring-jdbc模块搭建临时处理只读业务的程序架子

    源码,使用spring-jdbc搭建用于临时处理某些只读业务的程序架子。 代码简单,使用方便,可以连接读库执行,避免整个业务系统十分庞大时读库无法写入导致无法完成临时需求的完成。 jdk:1.8 spring:5.3.14 maven:3.3 ...

    spring学习文档

    TransactionDefinition 用于描述事务的隔离界别、超时时间、是否只读和传播规则等控制事务具体行为的事务属性。PlatformTransactionManager 是整个事务控制的核心类,它会根据 TransactionDefinition 定义的事务属性...

    spring学习事务源码

    1. **TransactionDefinition**: 定义了事务的属性,如隔离级别、传播行为、读写模式、超时时间以及是否为只读事务。 2. **PlatformTransactionManager**: 这是Spring事务管理的顶级接口,提供了开始、提交、回滚...

    Spring LDAP 简单使用

    Spring LDAP支持安全连接(如SSL/TLS),可以通过配置ContextSource的`pooled`和`anonymousReadOnly`属性来管理连接池和只读模式。此外,尽管LDAP本身不支持事务,但Spring LDAP允许你在应用层面实现事务管理。 **...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    - **是否只读**:事务是否只读取数据而不做修改。 #### TransactionStatus 该接口提供了关于当前事务的状态信息,如是否已提交、是否已回滚等。 #### 基于XML声明式事务控制 通过配置文件来定义事务规则。例如,...

    spring注解事务实现demo

    不过,这并不意味着在只读事务中不能执行更新操作,只是提示Spring可以优化事务处理。 6. **异常回滚规则** 默认情况下,如果在`@Transactional`方法中抛出未检查异常(继承自`RuntimeException`的异常)或者`...

    spring-security静态资源

    你可以通过设置响应头,如`Cache-Control`,来控制浏览器如何缓存这些资源。这可以通过自定义`HttpSecurity`配置实现。 5. **CORS(跨源资源共享)** 如果你的静态资源需要从不同的域访问,你需要考虑CORS策略。...

    org.springframework.dao.InvalidDataAccessApiUsageException

    导致 `org.springframework.dao.InvalidDataAccessApiUsageException` 的主要原因是Spring事务管理器默认将事务设置为只读模式。这意味着,在默认情况下,Spring假设任何被事务管理的方法都是只进行读取操作而不涉及...

    Spring事务详细讲解

    Spring事务详细讲解 在 Spring 框架中,事务管理扮演着非常重要的角色。Spring 声明式事务让我们从复杂的事务处理中得到解脱,使得我们再也无需要去处理获得连接、关闭连接、事务提交和回滚等这些操作。再也无需要...

    spring_tx的案例源码

    `@Transactional`注解有多个属性,如`propagation`(传播行为)、`isolation`(隔离级别)、`readOnly`(只读事务)、`timeout`(超时时间)和`rollbackFor`(指定异常类型触发回滚)。这些属性可以精细控制事务的...

    Spring事务类型祥解

    - `readOnly`: 是否为只读事务,如果设置为`true`,则事务管理器会尽可能地优化只读事务,例如在某些数据库中禁用写锁定。 - `rollbackFor`和`noRollbackFor`: 分别指定发生哪些异常时应回滚和不应回滚事务。 3. ...

    Spring攻略(第二版 中文高清版).part1

    12.1 设置Spring Roo开发环境 483 12.1.1 问题 483 12.1.2 解决方案 483 12.1.3 工作原理 483 12.2 创建第一个Spring Roo项目 486 12.2.1 问题 486 12.2.2 解决方案 486 12.2.3 工作原理 486 12.3 ...

    Spring基于XML方式配置事务

    除了传播行为,还可以配置其他事务属性,如隔离级别(`ISOLATION_DEFAULT`、`ISOLATION_READ_UNCOMMITTED`等)、超时(单位为秒)、是否只读以及回滚规则。这些可以在`<tx:method>`标签中设置。 结合上述配置,...

    Spring2.0 事务处理

    这篇博客将深入探讨Spring 2.0中的事务处理机制,以及如何通过`applicationContext.xml`配置文件来设置和管理事务。 首先,让我们理解什么是事务。事务是一组数据库操作,这些操作被视为一个单一的工作单元,要么...

Global site tag (gtag.js) - Google Analytics