`
xgbjmxn
  • 浏览: 270715 次
  • 性别: Icon_minigender_1
  • 来自: 新乡
社区版块
存档分类
最新评论

使用Spring AOP代理方式实现声明式事务的原理

阅读更多
使用Spring AOP代理方式实现声明式事务的原理
悬赏分:10 | 提问时间:2009-7-3 17:35 | 提问者:windto7sea

<bean id="myTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
      <property name="sessionFactory">
        <ref local="gwssiSessionFactory"/>
      </property>
    </bean>

<bean id="transactionProxyFactoryBean" abstract="true" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
      <property name="transactionManager">
        <ref bean="myTransactionManager"/>
      </property>
      <property name="transactionAttributes">
        <props>
          <prop key="*">PROPAGATION_REQUIRED</prop>
          <!--<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
          <prop key="set*">PROPAGATION_REQUIRED,readOnly</prop>-->
        </props>
      </property>
    </bean>


这段代码倒是看得眼睛都腻了 可是到底原理是什么? 配置这么多东西 是如何触发的呢? 请高手赐教啊........

推荐答案

首先将sessionFactory注入到HibernateTransactionManager中,再将HibernateTransactionManager对象注入到TransactionProxyFactoryBean对象中~应该还有一段对sessionFactory的定义

AOP就是面向代理的模式,本来一个应用程序要对某个对象进行操作的,但是这个对象中包含了很多与他本身不相关的业务逻辑,不如日志、锁等等。所以就要想办法把这些无关的东西全部抽离出来。被抽离过的对象就是被代理对象。

此时应用程序再调用的时候,会去调用代理对象,这个对象中包含了对被代理对象的调用以及被抽离出来的无关的业务逻辑方法。被代理对象则是纯粹的业务逻辑。

至于触发的话因为在容器起来的时候,比如tomcat或者jboss,会定义到指定的xml文件然后这些谁注入到谁的东西会被自动识别的。

回答时间:2009-7-4 15:45
分享到:
评论

相关推荐

    使用Spring的声明式事务----AOP方式

    在Spring框架中,声明式事务管理是通过AOP(面向切面编程)实现的,它为开发者提供了方便、高效且灵活的事务管理机制。本文将深入探讨如何利用Spring的声明式事务来处理业务操作中的数据一致性问题,以及相关源码...

    springAop默认代理方式.zip

    Spring AOP,全称Spring Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理、性能监控等。在Spring AOP中,...

    Hibernate编程式事务与Spring Aop的声明式事务(spring与hibernate集成)

    本篇文章将重点讨论如何在Spring框架中集成Hibernate,并探讨编程式事务管理和Spring AOP的声明式事务。 首先,让我们理解Spring与Hibernate的集成。为了整合这两个库,你需要在Spring配置文件中定义Hibernate的...

    spring AOP(声明式事务管理)小程序

    在本“spring AOP(声明式事务管理)小程序”中,我们将深入探讨Spring AOP如何实现声明式事务管理,以及相关的通知类型。 1. **什么是声明式事务管理**: 声明式事务管理是相对于编程式事务管理而言的,后者需要在...

    spring基于AOP实现事务

    总结一下,Spring基于AOP实现的事务管理通过TransactionProxyFactoryBean,结合声明式事务配置,能够提供一种高效且易于维护的事务解决方案。它允许我们在不修改业务逻辑的情况下,统一管理和控制事务,提升了代码的...

    Spring Aop的简单实现

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它为应用程序提供了声明式的企业级服务,如日志、事务管理等。在本项目中,我们将探讨如何通过配置文件实现Spring AOP...

    Spring AOP的底层实现技术

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理、性能监控等。AOP的核心概念包括切面(Aspect)、通知(Advice)、连接点...

    Spring ax/aop声明式事务配置实例

    通过以上步骤,我们成功地在Spring中实现了AOP声明式事务配置。这种方式使得事务管理与业务逻辑分离,代码更简洁、易维护。但需要注意,虽然声明式事务方便,但在复杂场景下可能需要结合编程式事务管理,以获得更高...

    简单spring aop 例子

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点问题,如日志、事务管理、安全性等。本示例将简要介绍如何在Spring应用中实现AOP,通过实际的...

    Spring框架-AOP和声明式事务

    Spring框架-AOP和声明式事务

    springAOP所需jar包

    3. spring-context.jar:提供了上下文支持,包括AOP的配置和声明式事务管理。 4. spring-core.jar:Spring的核心工具包,包含核心的IoC(Inversion of Control)服务和基本的类型转换系统。 5. aspectjrt.jar:...

    spring aop依赖jar包

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它为Java应用程序提供了声明式的企业级服务,如事务管理、性能监控等。在Spring AOP中,我们可以通过定义切面(Aspect...

    spring aop 学习笔记

    - **事务管理**:通过AOP实现声明式事务管理,简化事务控制代码。 - **性能监控**:在关键方法前、后插入性能计时通知,便于性能分析。 - **权限校验**:在方法执行前进行用户权限验证,确保安全。 5. **源码...

    Spring源代码解析(六):Spring声明式事务处理.doc

    Spring 中的事务处理可以分为两种方式:声明式事务处理和编程式事务处理。声明式事务处理通过 AOP 的实现,把事务管理代码作为方面封装到业务代码中,使得事务管理代码和业务代码解藕。这使得事务管理变得更加灵活...

    一个简单的spring AOP的实现

    1. 注解驱动的AOP:这是最常用的实现方式,通过在方法上添加注解(如`@Before`, `@After`, `@Around`, `@AfterReturning`, `@AfterThrowing`)来定义通知,并使用`@Aspect`注解定义切面。 2. XML配置驱动的AOP:...

    Spring Aop四个依赖的Jar包

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的一个重要模块,它通过提供声明式的方式来实现面向切面编程,从而简化了应用程序的开发和维护。在Spring AOP中,我们无需深入到每个...

    JavaEE spring自动实现AOP代理

    - 事务管理:使用AOP进行事务的声明式管理,简化事务控制代码。 - 权限验证:在方法调用前进行权限检查,确保只有授权用户才能执行特定操作。 7. **性能考虑**: - JDK动态代理需要目标对象实现至少一个接口,而...

    spring aop 五个依赖jar

    Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和声明式的方式来处理系统中的交叉关注点,如日志、事务管理等。在Java应用中,AOP通过代理模式实现了切面编程,使得我们可以将业务逻辑...

    java springAOP 事务+注释

    声明式事务管理主要依赖于Spring的AOP机制。我们可以通过XML配置或注解来声明事务边界。例如,在服务层的方法上使用`@Transactional`注解,可以自动开启、提交或回滚事务。如果方法抛出未检查异常(继承自`...

Global site tag (gtag.js) - Google Analytics