spring 的事务管理不需要任何特定的事务API耦合, 对不同的持久层访问技术 , 编程式事务提供一致的事务编程风格, 通过模块化的操作一致地管理事务. 声明式事务基于Spring AOP 实现, 却并不需要程序开发者成为AOP专家, 亦可轻易使用Spring的声明式事务管理
支持JDBC, Hibernate, JTA分布式事务
下面一段是aop的jdbc事务
<?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: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-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
<!-- 自动搜索com.fei.bean下面的bean组件 , 切面类 -->
<context:component-scan base-package="com.fei.bean">
<context:include-filter type="annotation"
expression="org.aspectj.lang.annotation.Aspect" />
</context:component-scan>
<!-- 开启对aspectj的支持 -->
<aop:aspectj-autoproxy />
<!-- 定义一个数据源bean,用于连接数据库,id取名为dataSource. 使用的连接池为c3p0 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="jdbcUrl" value="jdbc:mysql://localhost/test"/>
<property name="user">
<value>xxx</value>
</property>
<property name="password">
<value>xxx</value>
</property>
<!--其它的默认-->
</bean>
<!-- 配制jdbc事务 spring 1.x的配置方式, 不清楚为什么用在这里不行 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 配置spring 2.x事务切面bean -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!--定义切入点-->
<aop:pointcut expression="execution(* com.fei.test.*.*(..))" id="myServices"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="myServices"/>
</aop:config>
</beans>
分享到:
相关推荐
Spring ax/aop声明式事务配置实例
NULL 博文链接:https://quicker.iteye.com/blog/674029
用spring AOP(包括几种常用的通知类型)做的小程序
NULL 博文链接:https://tonl.iteye.com/blog/2093314
Spring框架-AOP和声明式事务
<?xml version="1.0" encoding="UTF-8"?><beansxmlns=...aop-2.5.xsd">
Spring通过@Transactional注解以及底层的AOP和代理机制实现了声明式事务。这个机制允许开发者通过简单的注解就能控制事务的边界和规则,极大地简化了编程模型。在Spring中,事务管理是通过一系列的拦截器和事务管理...
在Spring3中配置声明式事务比早期版本显得更加简便。只需要几行配置文件+注解就可以实现面向切面的AOP事务
spring声明式事务的配置 3. spring2.0配置事务 a) 将spring 1.2升级到spring2.0 i. 去掉spring1.2相关的包 ii. 添加spring2.0的jar包:spring.jar,aspecjrt.jar,aspectjweaver.jar 和cglib-nodep-2.1.3,jar iii. ...
1.掌握Myeclipse的使用。 2.掌握spring框架和hibernate框架的使用。 3. 掌握整合spring和hibernate的持久化操作编程 4.掌握基于AOP的声明式事务编程...3.配置WEB-INF/applicationContext.xml提供基于AOP的声明式事务
Spring提供了声明式事务处理机制,它基于AOP实现,无须编写任何事务管理代码,所有的工作全在配置文件中完成。 二、声明式事务的XML配置方式 为业务方法配置事务切面,需要用到tx和aop两个命名空间下的标签,先在...
Spring的声明式事务管理是采用AOP(Aspect-Oriented Programming,面向切面编程)实现的。在编程式事务管理中,各事务处理代码实际上是相似的,这就造成了代码重复;而且编程式事务管理会造成事务管理代码和被管理的...
采用声明式事务 1.声明式事务的配置 * 配置sessionFactory * 配置事务管理器 * 配置事务的传播特性 * 配置哪些类哪些方法使用事务 2.编写业务逻辑方法 * 继承HibernateDaoSupport类,使用this....
Spring3.0MVC注解+SringJdbcDaoSupport案例,前端包括批量伤处,SpringAop声明式事务控制的配置等信息
提供了SpringMVC+MyBatis3.2.8的整合完整代码和所有需要的库,还包括了Spring AOP声明式事务的配置。
Spring框架资料,Ioc容器, AOP面向切面编程 ,声明式事务 ,Spring5新特性
Spring源代码解析(六):Spring声明式事务处理 Spring源代码解析(七):Spring AOP中对拦截器调用的实现 Spring源代码解析(八):Spring驱动Hibernate的实现 Spring源代码解析(九):Spring Acegi框架鉴权的实现 ...
发布于2013-5-6项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring2.0AOP类库即可。添加方法:点击项目右键->BuildPath->Addlibrarys:打开AddLibraries对话框,然后选定...
Spring源代码解析(六):Spring声明式事务处理 Spring源代码解析(七):Spring AOP中对拦截器调用的实现 Spring源代码解析(八):Spring驱动Hibernate的实现 Spring源代码解析(九):Spring Acegi框架鉴权的实现 ...