1

我正在学习 spring AOP,但运行@After注释时遇到问题。

出于某种原因,@After在方法调用之前执行。

我究竟做错了什么?是我的 Eclipse 环境问题吗?

@Aspect 

public class LoggingAspect {

    @After("execution(* aop.*.* (..))")
    public void AfterLoggingAdvice() {
        System.out.println("AfterLoggingAdvice() is running");

    }

}

这是我的主要课程:

public static void main(String[] args) {

    ApplicationContext context = new ClassPathXmlApplicationContext(
            "aop.xml");

    ShapeService service = context.getBean("shapeService",
            ShapeService.class);
    System.out.println(service.getCircle().getName());

}

XML 文件:

<aop:aspectj-autoproxy/>

    <bean id="circle" class="aop.Circle"  >
        <property name="name" value="Circle Name" /> 
        <property name="id" value="Circle ID" /> 
    </bean>

    <bean id="shapeService" class="aop.ShapeService"  autowire="byName"/>

    <bean id="loggingAspect" class="aop.LoggingAspect"/>

</beans>

无论使用@Afteror ,这都是输出@Before

AfterLoggingAdvice() 正在运行

AfterLoggingAdvice() 正在运行

圈子名称

4

0 回答 0