我正在学习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>
无论使用@After
还是@Before
:
AfterLoggingAdvice()正在运行
AfterLoggingAdvice()正在运行
圈子名称