Spring 3.1 事务配置

简介:
版权声明:原创作品,谢绝转载!否则将追究法律责任。

Spring 3.1 事务配置

 
spring发的包最好用的是2.5.6;所依赖的包全部都有,可是后来的版本都缺这少那的,导致开发中遇到各种各样的问题。
 
下面主要讲述如何给你的spring应用加上事务:
 
1、准备依赖的包
 
org.springframework.aop-3.1.0.RELEASE.jar                                            
org.springframework.asm-3.1.0.RELEASE.jar                                            
org.springframework.aspects-3.1.0.RELEASE.jar                                    
org.springframework.beans-3.1.0.RELEASE.jar                                        
org.springframework.context-3.1.0.RELEASE.jar                                    
org.springframework.context.support-3.1.0.RELEASE.jar                    
org.springframework.core-3.1.0.RELEASE.jar                                         
org.springframework.expression-3.1.0.RELEASE.jar                             
org.springframework.jdbc-3.1.0.RELEASE.jar                                         
org.springframework.orm-3.1.0.RELEASE.jar                                            
org.springframework.transaction-3.1.0.RELEASE.jar                            
org.springframework.web-3.1.0.RELEASE.jar                                            
org.springframework.web.struts-3.1.0.RELEASE.jar
 
-- spring 2.5.6中获取 
aopalliance.jar                                                                                                
aspectjweaver.jar    
-- MySQL驱动 
mysql-connector-java-5.1.17-bin.jar    
-- 必须的包 
commons-dbcp-1.4.jar    
commons-lang-2.6.jar                                                                                     
commons-logging-1.1.1.jar                                                                            
commons-pool-1.6.jar        
log4j-1.2.16.jar
 
 
2、配置
 
引入xml头文件
<? xml  version ="1.0"  encoding ="GBK" ?> 
< beans  xmlns ="http://www.springframework.org/schema/beans" 
              xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" 
              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-3.0.xsd 
         http://www.springframework.org/schema/tx 
         http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
         http://www.springframework.org/schema/aop 
         http://www.springframework.org/schema/aop/spring-aop-3.0.xsd" >
 
引入配置文件
        <!--  不加密时候使用 --> 
        <!-- <context:property-placeholder location="classpath:jdbc.properties,classpath:tdmc.properties"/>--> 

        <!--  加密时候使用 --> 
         < bean  id ="propertyConfig"  class ="com.lavasoft.freamwork.ext.spring.PropertyPlaceholderConfigurerExt" > 
                 < property  name ="locations" > 
                         < list > 
                                 < value >classpath:jdbc.properties </ value > 
                                 < value >classpath:tdmc.properties </ value > 
                         </ list > 
                 </ property > 
         </ bean >
 
配置事务:
         < bean  id ="txManager"  class ="org.springframework.jdbc.datasource.DataSourceTransactionManager" > 
                 < property  name ="dataSource"  ref ="dataSource" /> 
         </ bean > 
         < tx:advice  id ="txAdvice"  transaction-manager ="txManager" > 
                 < tx:attributes > 
                         < tx:method  name ="get*"  read-only ="true" /> 
                         < tx:method  name ="set*"  read-only ="true" /> 
                         < tx:method  name ="query*"  read-only ="true" /> 
                         < tx:method  name ="find*"  read-only ="true" /> 
                         < tx:method  name ="load*"  read-only ="true" /> 
                         < tx:method  name ="count*"  read-only ="true" /> 
                         < tx:method  name ="save*"  rollback-for ="Exception" /> 
                         < tx:method  name ="update*"  rollback-for ="Exception" /> 
                         < tx:method  name ="delete*"  rollback-for ="Exception" /> 
                         < tx:method  name ="merage*"  rollback-for ="Exception" /> 
                 </ tx:attributes > 
         </ tx:advice > 
         < aop:config > 
                 < aop:pointcut  id ="serviceOperation" 
                                             expression ="execution(* com.asiainfo.tdmc.service.*SV.*(..))" /> 
                 < aop:advisor  advice-ref ="txAdvice" 
                                          pointcut-ref ="serviceOperation" /> 
         </ aop:config > 
 
 
3、测试
 
设置MySQL的表为InnoDB类型,在保存中抛出异常,和不抛出异常做比较,看看能否保存,即可知道事务是否起作用。
 
         public Test_dept saveTest_dept(Test_dept test_dept) { 
                test_dept =    test_deptDAO.insert(test_dept); 
                 if( truethrow  new RuntimeException(); 
                 return test_dept; 
        }
 
发现数据库没有保存上。
 
去掉事务配置的xml片段,则保存进去了。
 http://lavasoft.blog.51cto.com/62575/807502
本文出自 “ 熔 岩” 博客,谢绝转载!









本文转自yunlielai51CTO博客,原文链接:http://blog.51cto.com/4925054/1177162,如需转载请自行联系原作者

相关文章
|
3月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
3月前
|
Java 关系型数据库 MySQL
Spring Boot自动配置:魔法背后的秘密
Spring Boot 自动配置揭秘:只需简单配置即可启动项目,背后依赖“约定大于配置”与条件化装配。核心在于 `@EnableAutoConfiguration` 注解与 `@Conditional` 系列条件判断,通过 `spring.factories` 或 `AutoConfiguration.imports` 加载配置类,实现按需自动装配 Bean。
|
3月前
|
SQL Java 关系型数据库
Spring事务传播机制:7种姿势教你玩转"事务接力赛"
事务传播机制是Spring框架中用于管理事务行为的重要概念,它决定了在方法调用时事务如何传递与执行。通过7种传播行为,开发者可以灵活控制事务边界,适应不同业务场景。例如:REQUIRED默认加入或新建事务,REQUIRES_NEW独立开启新事务,NESTED支持嵌套回滚等。合理使用传播机制不仅能保障数据一致性,还能提升系统性能与健壮性。掌握这“七种人格”,才能在复杂业务中游刃有余。
|
3月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
1488 0
|
5月前
|
Java Spring
Spring Boot配置的优先级?
在Spring Boot项目中,配置可通过配置文件和外部配置实现。支持的配置文件包括application.properties、application.yml和application.yaml,优先级依次降低。外部配置常用方式有Java系统属性(如-Dserver.port=9001)和命令行参数(如--server.port=10010),其中命令行参数优先级高于系统属性。整体优先级顺序为:命令行参数 &gt; Java系统属性 &gt; application.properties &gt; application.yml &gt; application.yaml。
1024 0
|
2月前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
655 5
|
8月前
|
安全 Java API
深入解析 Spring Security 配置中的 CSRF 启用与 requestMatchers 报错问题
本文深入解析了Spring Security配置中CSRF启用与`requestMatchers`报错的常见问题。针对CSRF,指出默认已启用,无需调用`enable()`,只需移除`disable()`即可恢复。对于`requestMatchers`多路径匹配报错,分析了Spring Security 6.x中方法签名的变化,并提供了三种解决方案:分次调用、自定义匹配器及降级使用`antMatchers()`。最后提醒开发者关注版本兼容性,确保升级平稳过渡。
1035 2
|
3月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
212 0
探索Spring Boot的@Conditional注解的上下文配置
|
4月前
|
Java 关系型数据库 数据库
深度剖析【Spring】事务:万字详解,彻底掌握传播机制与事务原理
在Java开发中,Spring框架通过事务管理机制,帮我们轻松实现了这种“承诺”。它不仅封装了底层复杂的事务控制逻辑(比如手动开启、提交、回滚事务),还提供了灵活的配置方式,让开发者能专注于业务逻辑,而不用纠结于事务细节。