我是 Spring AOP 的新手。
使用基于注解的 Spring 配置:
@Configuration
@EnableAspectJAutoProxy(proxyTargetClass=true)
@ComponentScan({"sk.lkrnac"})
方面:
@Aspect
@Component
public class TestAspect {
@Before("execution(* *(..))")
public void logJoinPoint(JoinPoint joinPoint){
....
}
}
弹簧组件:
package sk.lkrnac.testaop;
@Component
public class TestComponent{
@PostConstruct
public void init(){
testMethod();
}
public void testMethod() {
return;
}
}
如何拦截 Spring 框架本身调用的所有公共方法?(例如 TestComponent.init() 在 Spring 创建 TestComponent 实例期间)目前我只能TestComponent.testMethod()
通过调用来拦截:
TestComponent testComponent = springContext.getBean(TestComponent.class);
testComponent.testMethod();