gpt4 book ai didi

java - 使用 ZK 配置 AOP 以拦截方法

转载 作者:行者123 更新时间:2023-11-29 09:15:30 26 4
gpt4 key购买 nike

在某些方法(或目前的所有方法)之前,我必须调用方面的方法来记录一些消息。我的应用程序运行正常,但没有调用 Aspect 类的任何方法。

我在我的本地应用程序中的相同文件夹结构中尝试了相同的切割点,但是当我尝试将它包含在 ZK 中时,我遇到了问题。我还修改了我的 application-context.xml 以支持 AOP。

这是我的方面类:

package com.mypckg.services.impl;

import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class MyIntercpeter {

@Pointcut("execution(* com.mypckg.services.impl.MyService.getStudents(..))")
public void performance() {
}

@Before("performance()")
public void doSomethingBeforeExecution() {
System.out.println("Before execution method called...");


}

@AfterReturning("performance()")
public void doSomethingAfterExecution() {
System.out.println("After execution method called...");

}
}

我在application-context.xml中所做的修改是

<beans  .........

xmlns:aop="http://www.springframework.org/schema/aop"

xsi:schemaLocation="
..........
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">


.....

<aop:aspectj-autoproxy />
<context:annotation-config />

我错过了什么吗?提前致谢。

最佳答案

看起来您错过了一个明显的事情:您忘记在 spring 配置中声明 bean 了吗?

来自 Spring 文档:

Spring AOP 只支持 Spring bean 的方法执行连接点,所以你可以认为切入点是匹配 Spring bean 上的方法执行。

http://static.springsource.org/spring/docs/2.0.x/reference/aop.html

您可以使用注解或配置来声明您的 bean。

另外最好放一个你使用的 spring 版本(我认为它是 2.0.x)。

关于java - 使用 ZK 配置 AOP 以拦截方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767860/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com