`

spring aop未执行问题记录

阅读更多
在类com.ipharmacare.plat.service.data.DocOrgService中定义了如下2个方法:
	public int operate(Integer docId, String[] allOrgs, DocManageVo doc) {
	
		int r = 0;
		...
	
		return r;
	
	}
	
	public int operate(DocManageVo doc, String[] allOrgs, String productId, String entCode) {

		int r = 0;

		...
		
		r += operate(doc.getId(), allOrgs, doc);

		return r;
	}

spring aop配置如下:
		<aop:aspect id="aspect.deliveryChangeLog.aop" ref="deliveryChangeLogAop">
			<aop:pointcut
				expression="execution(int com.ipharmacare.plat.service.data.DocOrgService.operate(Integer,..))"
				id="pointcut.deliveryChangeLog" />
			<aop:around method="around" pointcut-ref="pointcut.deliveryChangeLog" />
			<aop:after method="after" pointcut-ref="pointcut.deliveryChangeLog" />
		</aop:aspect>


在DocManageAction中调用了方法DocOrgService.operate(DocManageVo doc, String[] allOrgs, String productId, String entCode),发现AOP中的逻辑并没执行,这有点奇怪了!?

无意间我在DocManageAction中调用方法DocOrgService.operate(Integer docId, String[] allOrgs, DocManageVo doc),发现AOP中逻辑已成功执行

这就有点不明白了,何以在DocOrgService本类中调用operate(Integer docId, String[] allOrgs, DocManageVo doc)方法,其AOP逻辑为何不生效呢,而必须在其它类中调用该方法其AOP逻辑才生效!?
分享到:
评论

相关推荐

    spring aop jar 包

    Spring AOP(Aspect Oriented Programming,面向切面...总的来说,Spring AOP通过提供面向切面的编程能力,极大地提高了代码的可复用性和可维护性,降低了系统复杂度,特别是在处理共性问题如日志、事务、安全等方面。

    简单spring aop 例子

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

    Spring AOP完整例子

    总结一下,Spring AOP提供了一种优雅的方式来处理系统的横切关注点,如日志记录、事务管理或性能监控。通过定义切点、创建切面和配置通知,我们可以实现代码的解耦,提高可维护性和复用性。这个例子提供了学习Spring...

    Spring AOP面向方面编程原理:AOP概念

    ### Spring AOP面向方面编程原理:AOP概念详解 #### 一、引言 随着软件系统的日益复杂,传统的面向对象编程(OOP)逐渐暴露出难以应对某些横切关注点(cross-cutting concerns)的问题。为了解决这一挑战,面向方面编程...

    Spring AOP实现机制

    **Spring AOP 实现机制详解** Spring AOP(面向切面编程)是Spring框架的核心特性之一,它允许程序员在不修改源代码的情况下,通过“切面”来插入额外的业务逻辑,如日志、事务管理等。AOP的引入极大地提高了代码的...

    spring-aop实例

    9. **应用场景**:Spring AOP常用于日志记录、事务管理、性能监控、安全性控制等。例如,你可以定义一个切面来记录所有服务层方法的调用,或者在每次数据库操作前开启事务并在操作成功后提交事务。 通过以上介绍,...

    springAop与spring定时器

    Spring AOP(面向切面编程)是Spring框架中的一个重要组件,它允许我们在不修改源代码的情况下,通过在程序运行时动态地将代码插入到方法调用中,来实现跨切面的关注点,如日志记录、性能监控、事务管理等。而Spring...

    spring aop的demo

    在`springAop1`这个压缩包中,可能包含了一个简单的应用示例,展示了如何定义一个切面类,以及如何在该类中定义通知方法。例如,我们可能会看到一个名为`LoggingAspect`的类,其中包含了`@Before`注解的方法,用于在...

    spring aop spring aop

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,用于实现横切关注点的模块化。它允许开发者定义“切面”,将那些与业务逻辑无关,却为多个对象共有的行为(如日志、...

    spring aop 学习笔记

    - **日志记录**:使用AOP记录方法的调用日志,提高代码可读性和维护性。 - **事务管理**:通过AOP实现声明式事务管理,简化事务控制代码。 - **性能监控**:在关键方法前、后插入性能计时通知,便于性能分析。 -...

    spring-aop-jar

    在IT领域,Spring框架是一个广泛使用的Java应用框架,它提供了许多功能,包括依赖注入、面向切面编程(AOP)等。"spring-aop-jar"这个主题涉及到Spring框架中的核心组件之一——Spring AOP。这里我们将深入探讨...

    Spring AOP简单demo

    **Spring AOP 简介** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要模块,它扩展了传统的面向对象编程,允许开发者定义“横切关注点”(cross-cutting concerns),如日志、事务...

    springAop的配置实现

    在传统的面向对象编程中,业务逻辑与日志记录、事务管理、性能监控等横切关注点混合在一起,而AOP则是为了解决这一问题而诞生的编程范式。 **1. Spring AOP 基础概念** - **切面(Aspect)**:切面是关注点的模块化...

    反射实现 AOP 动态代理模式(Spring AOP 的实现原理)

    面向切面编程(AOP)是一种编程范式,旨在将横切关注点(如日志、安全等)与业务逻辑分离,从而提高模块化。...利用Java反射机制和Spring AOP框架,开发者可以方便地实现AOP,从而提升代码的模块化和可维护性。

    spring AOP的运用

    Spring AOP,全称Aspect-Oriented Programming(面向切面编程),是Spring框架的重要组成部分,它为Java应用程序提供了声明式的企业级服务,如事务管理、日志记录等。AOP的核心概念是切面(Aspect)和通知(Advice)...

    springAOP所需jar包

    在Java应用中,AOP主要用于日志记录、性能统计、安全控制、事务管理等方面,通过将这些通用功能模块化,可以避免重复代码,提高代码的可维护性和复用性。 Spring AOP的实现基于动态代理,有两种代理方式:JDK动态...

    spring AOP入门教程

    AOP是一种编程范式,旨在解决程序中的横切关注点问题,这些关注点通常与业务逻辑无关,但又需要在多个地方被调用,如日志记录、性能统计、异常处理等。AOP通过将这些关注点与核心业务逻辑分离,使得代码更加模块化...

    小马哥讲 Spring AOP 编程思想 - API 线索图.pdf

    在讨论Spring AOP(面向切面编程)时,首先需要理解几个核心概念。Spring AOP 是Spring框架提供的一个功能模块,它允许开发者将横切关注点(cross-cutting concerns)从业务逻辑中解耦出来,通过在方法调用前后进行...

    spring aop 经典例子(原创)

    本例基于JDK 1.6,这是一个相对早期的版本,但Spring AOP的核心概念并未改变。Spring 2.0.5版本虽然较旧,但依然能展示AOP的基本用法。使用Eclipse IDE进行开发,可以方便地创建和配置项目。 在`testaop`这个文件夹...

Global site tag (gtag.js) - Google Analytics