`
namezhou
  • 浏览: 158727 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

启用事务的spring与jdbc集成_AOP代理

阅读更多

JdbcTemplate没有内置事务机制

可以使用Spring的AOP代理机制来实现

具体实现:
配置文件

<!-- 数据源对象 -->
<bean id="datasrc" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
 <property name="username" value="root"></property>
 <property name="password" value=""></property>
 <property name="url" value="jdbc:mysql://localhost:3306/spring"></property>
</bean>
<!-- JdbcTemplate对象 -->
<bean id="jdbctemplate" class="org.springframework.jdbc.core.JdbcTemplate">
 <property name="dataSource" ref="datasrc"></property>
</bean>
<!-- 实现类的对象 -->  
<bean id="userdaoimpl" class="com.dowebber.dao.impl.UserDaoImpl">
 <property name="jdt" ref="jdbctemplate"></property>
</bean>
<!-- 配置transactionManager -->
<bean id="transmgr" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
 <property name="dataSource" ref="datasrc"></property>
</bean>
<!-- 配置代理对象 -->
<bean id="userdaoproxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
 <property name="target" ref="userdaoimpl"></property>
 <property name="proxyInterfaces" value="com.dowebber.dao.UserDao"></property>
 <property name="transactionManager" ref="transmgr"></property>
 <property name="transactionAttributes">
  <props>
   <prop key="*User">PROPAGATION_REQUIRED,-Exception</prop>
  </props>
 </property>
</bean>

 
transactionAttributes:如果配置多个事务中间可以用逗号分开
-Exception:表示代码出现异常,事务不提交
+Exception:表示代码出现异常,事务也提交
<prop key="*User">PROPAGATION_REQUIRED,-Exception</prop>
<1>:如果key的值为*,说明所有的方法都加事务
<2>:也可以通配匹配 *User


测试?? 不知如何测试...

0
0
分享到:
评论

相关推荐

    spring-nested-aop.zip_aop_spring aop

    例如,我们可以看到使用`&lt;aop:config&gt;`标签来定义切面,`&lt;tx:annotation-driven&gt;`来启用基于注解的事务管理。 ```xml &lt;aop:config&gt; &lt;aop:aspect id="transactionAspect" ref="transactionManager"&gt; &lt;!-- 定义...

    Spring-Reference_zh_CN(Spring中文参考手册)

    6.1.3. Spring的AOP代理 6.2. @AspectJ支持 6.2.1. 启用@AspectJ支持 6.2.2. 声明一个切面 6.2.3. 声明一个切入点(pointcut) 6.2.3.1. 切入点指定者的支持 6.2.3.2. 合并切入点表达式 6.2.3.3. 共享常见的切入点...

    spring-jdbc-4.2.xsd.zip

    在Spring的配置文件中,我们经常会看到xsd文件的身影,例如`spring-jdbc-4.2.xsd`,它是Spring JDBC模块的XML Schema定义文件,用于验证和解析与数据库交互的相关配置。 `spring-jdbc-4.2.xsd`是Spring 4.2版本的...

    spring事务与数据库操作

    这种方式将业务逻辑与事务管理代码分离,使得代码更加清晰且易于维护。 ##### 1.2 配置Spring声明式事务 要启用Spring的声明式事务管理,通常需要做以下几步配置: - **配置数据源**:首先需要配置数据源,以便...

    SpringAOP整合Hibernate并使用事务

    2. **Spring AOP与事务管理** Spring提供了声明式事务管理,这使得事务管理代码不再需要硬编码到业务逻辑中,而是通过配置来实现。AOP代理可以在方法调用前后自动执行事务相关的操作,如开启、提交、回滚事务,大大...

    Spring_tx事务

    例如,我们可以创建一个通知(Advice)来记录事务日志或处理其他与事务相关的任务。 在实际项目中,声明式事务管理更为常见,因为它降低了代码的耦合度,提高了可维护性。要启用声明式事务管理,我们需要在Spring...

    用Hibernate和Spring开发事务持久层.rar_spring

    Spring通过AOP代理在合适的时候调用Hibernate的Session方法,控制事务的开启、提交、回滚等行为。以下是一段示例代码,展示了如何在Spring中配置Hibernate事务管理: ```xml &lt;bean id="sessionFactory" class="org....

    Spring基础包的dtd(aop,jdbc,jee,jms,lang,mvc,oxm)等

    最后,`tx.dtd`涉及到事务管理,如`&lt;tx:annotation-driven&gt;`用于启用基于注解的事务管理,`&lt;tx:advice&gt;`定义了事务处理策略。 以上就是Spring各主要模块的DTD文件所涵盖的知识点,它们共同构建了Spring框架的强大...

    Spring2.x对事务的管理(AOP)

    在Spring 2.x框架中,事务管理是其核心特性之一,尤其与面向切面编程(AOP)结合使用时,可以实现高效的事务控制。本文将深入探讨Spring如何通过AOP来实现事务管理,并以`applicationContext.xml`配置文件为例,阐述...

    struts+spring+jdbc

    此外,Spring还提供了大量的数据访问工具,如JDBC抽象层和ORM集成。 JdbcTemplate 是Spring框架的一部分,它为JDBC操作提供了简化和模板化的API,使得开发者能够更安全、更便捷地进行数据库操作。使用JdbcTemplate...

    Spring声明式事务配置管理方法

    - Annotation-driven配置:在Spring应用上下文中启用注解驱动的事务管理。 理解并熟练运用Spring声明式事务管理,可以有效提高应用程序的事务处理能力,同时降低事务管理的复杂性。通过合理的配置,可以确保数据的...

    实验 spring 声明事务

    实验 "Spring 声明事务" 是 Java 高级编程中的一个重要环节,旨在让学生掌握 Spring 框架中声明式事务管理的配置和使用。在实际应用中,事务管理是确保数据一致性、完整性和可靠性的关键组件。Spring 提供了声明式...

    spring与struts集成方案二

    - 在Struts配置文件中,启用Spring插件,并指定Spring配置文件的位置。 4. **Action与Service交互**: - Action类通常只包含与用户交互的逻辑,而具体的业务逻辑则封装在Service层。Action通过调用Service的方法...

    spring声明式事务处理demo

    1. **配置Spring容器**:在Spring的配置文件(如`applicationContext.xml`)中,我们需要定义一个`&lt;tx:annotation-driven&gt;`元素,这将启用基于注解的声明式事务管理。同时,需要配置数据源(DataSource)和事务管理...

    Spring的AOP实例(XML+@AspectJ双版本解析+源码+类库)

    在Spring框架中,AOP主要用于处理系统中的横切关注点,如日志记录、事务管理、权限校验等,这些关注点通常分散在多个类的方法中,通过AOP可以将其集中管理。 **XML配置AOP** 在Spring早期版本中,AOP主要通过XML...

    Spring+Hibernate注解事务实例

    在Spring+Hibernate集成中,Spring通过AOP代理来处理事务。当我们在服务层的方法上添加@Transactional注解时,Spring会在方法执行前后自动处理事务的开始、提交、回滚等操作。如果方法执行过程中发生异常,Spring会...

    在Spring中配置Hibernate事务

    4. **启用Spring的AOP代理**: 声明式事务管理基于Spring的AOP,因此需要开启AOP代理。这可以通过在配置文件中添加以下行来实现: ```xml ``` 这行配置表示Spring会扫描带有@Transactional注解的方法,并自动...

    springboot整合spring事务

    1. **引入依赖**:在`pom.xml`或`build.gradle`中添加对`spring-boot-starter-data-jpa`或`spring-boot-starter-aop`的依赖,前者适用于JPA或Hibernate的事务管理,后者用于AOP(面向切面编程)事务管理。...

    spring 简单实例 事务回滚

    当带有`@Transactional`注解的方法被调用时,Spring的代理会在方法执行前后插入事务相关的代码。如果方法正常结束,它会提交事务;如果抛出异常,它会回滚事务。 总之,这个“spring简单实例 事务回滚”案例为我们...

Global site tag (gtag.js) - Google Analytics