欢迎来到天天文库
浏览记录
ID:12803096
大小:32.50 KB
页数:3页
时间:2018-07-19
《spring的声明式事物》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Spring的声明式事物声明式事务的原理:声明式事务处理通过AOP的实现把事物管理代码作为方面封装来横向插入到业务代码中,使得事务管理代码和业务代码解耦。在折冲形式我们结合IOC容器和spring已有的FactoryBean来对事务管理执行属性配置,比如传播行为,隔离级别等。其中最基本的形式就是通过配置TransactionProxyFactoryBean来实现声明式事务。声明式事务的配置:步骤一:声明委托对象<.beanname=”userDao”class=”com.softfz.dao.Userdao”>
2、ropertyname=”dataSource”ref=”dataSource”>步骤二:定义事务管理器步骤三:创建事务代理父工程3、on”class=”org.springframework.transaction.interceptor.TransactionProxyFactoryBean”abstract=”true”>PROPAGATION_REQUIRED4、>注意:1、abstract=”true”说明该工厂为抽象工厂,无法进行对象处理,只能被继承2、transactionAttributes表示设置事务的传播属性步骤四:创建事务子工厂步骤五:往需要userDao对象的调用者注入userDao注意:注入的是代理userDao对象的事务子工厂,并5、且使用接口声明如IuserDaouserDaoProxy//省略get,set方法声明式处理中的异常处理Spring中,将委托对象的每个方法创建事务,spring的事务支持默认对运行期异常(RuntimeException)进行回滚,而RuntimeException无需开发者显示声明。如果手动捕获异常,则spring容器认为开发者试图进行手动事务回滚,将无法用spring容器来进行事务回滚。但是如果发生非RuntimeException及其子类的异常,则spring容器无法进行事务处理,如果需要管理,需要进行相关6、配置,代码如下://+提交,-回滚,后面为异常类型,表示该方法如果抛出异常则进行相应的事务处理PROPAGATION_REQUIRED,-FileNotFoundExceptionreadOnlyRuntimeException和非RuntimeE的区别Exception体系包括RuntimeException体系和其他非RuntimeException的体系(1)RuntimeException体系7、:包括错误的类型转换、数组的越界访问和试图访问空指针等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如可以通过检查数组下标边界类避免数据越界问题异常。NumberFormatException:继承IllegalArgumentException,字符串转换为数字时。比如inti=Integer.parseInt("ab3");ArrayIndexOutOfBoundsException:数组越界比如int[]a=newint[3];intb=a8、[3];StringIndexOutOfBoundsException:字符串越界比如Strings="hello";charc=s.chatAt(6);ClassCastException:类型转换错误比如Objectobj=newObject();Strings=(String)obj;(2)其他非RuntimeException(IOException
3、on”class=”org.springframework.transaction.interceptor.TransactionProxyFactoryBean”abstract=”true”>PROPAGATION_REQUIRED4、>注意:1、abstract=”true”说明该工厂为抽象工厂,无法进行对象处理,只能被继承2、transactionAttributes表示设置事务的传播属性步骤四:创建事务子工厂步骤五:往需要userDao对象的调用者注入userDao注意:注入的是代理userDao对象的事务子工厂,并5、且使用接口声明如IuserDaouserDaoProxy//省略get,set方法声明式处理中的异常处理Spring中,将委托对象的每个方法创建事务,spring的事务支持默认对运行期异常(RuntimeException)进行回滚,而RuntimeException无需开发者显示声明。如果手动捕获异常,则spring容器认为开发者试图进行手动事务回滚,将无法用spring容器来进行事务回滚。但是如果发生非RuntimeException及其子类的异常,则spring容器无法进行事务处理,如果需要管理,需要进行相关6、配置,代码如下://+提交,-回滚,后面为异常类型,表示该方法如果抛出异常则进行相应的事务处理PROPAGATION_REQUIRED,-FileNotFoundExceptionreadOnlyRuntimeException和非RuntimeE的区别Exception体系包括RuntimeException体系和其他非RuntimeException的体系(1)RuntimeException体系7、:包括错误的类型转换、数组的越界访问和试图访问空指针等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如可以通过检查数组下标边界类避免数据越界问题异常。NumberFormatException:继承IllegalArgumentException,字符串转换为数字时。比如inti=Integer.parseInt("ab3");ArrayIndexOutOfBoundsException:数组越界比如int[]a=newint[3];intb=a8、[3];StringIndexOutOfBoundsException:字符串越界比如Strings="hello";charc=s.chatAt(6);ClassCastException:类型转换错误比如Objectobj=newObject();Strings=(String)obj;(2)其他非RuntimeException(IOException
4、>注意:1、abstract=”true”说明该工厂为抽象工厂,无法进行对象处理,只能被继承2、transactionAttributes表示设置事务的传播属性步骤四:创建事务子工厂步骤五:往需要userDao对象的调用者注入userDao注意:注入的是代理userDao对象的事务子工厂,并
5、且使用接口声明如IuserDaouserDaoProxy//省略get,set方法声明式处理中的异常处理Spring中,将委托对象的每个方法创建事务,spring的事务支持默认对运行期异常(RuntimeException)进行回滚,而RuntimeException无需开发者显示声明。如果手动捕获异常,则spring容器认为开发者试图进行手动事务回滚,将无法用spring容器来进行事务回滚。但是如果发生非RuntimeException及其子类的异常,则spring容器无法进行事务处理,如果需要管理,需要进行相关
6、配置,代码如下://+提交,-回滚,后面为异常类型,表示该方法如果抛出异常则进行相应的事务处理PROPAGATION_REQUIRED,-FileNotFoundExceptionreadOnlyRuntimeException和非RuntimeE的区别Exception体系包括RuntimeException体系和其他非RuntimeException的体系(1)RuntimeException体系
7、:包括错误的类型转换、数组的越界访问和试图访问空指针等。处理RuntimeException的原则是:如果出现RuntimeException,那么一定是程序员的错误。例如可以通过检查数组下标边界类避免数据越界问题异常。NumberFormatException:继承IllegalArgumentException,字符串转换为数字时。比如inti=Integer.parseInt("ab3");ArrayIndexOutOfBoundsException:数组越界比如int[]a=newint[3];intb=a
8、[3];StringIndexOutOfBoundsException:字符串越界比如Strings="hello";charc=s.chatAt(6);ClassCastException:类型转换错误比如Objectobj=newObject();Strings=(String)obj;(2)其他非RuntimeException(IOException
此文档下载收益归作者所有