我正在开发Spring MVC应用程序上的AspectJ AOP实现。我已经编写了Aspect java类,我试图拦截其中一个软件包的所有方法的连接点,例如com.xyz.services。但是AOP总是不能接受那个方案的方法。方面定义如下 -
@Pointcut("execution(* com.xyz.services..*.*(..))")
public void logBefore() {
}
@Before("logBefore()")
public void logHere(JoinPoint joinPoint) {
System.out.println("In logHere ....");
logger.info("logBefore is running ....");
logger.info("hijacked ::::" + joinPoint.getSignature().getName());
logger.info("joinPoint.getSignature().getDeclaringTypeName() ::::"
+ joinPoint.getSignature().getDeclaringTypeName());
logger.info("joinPoint.getSignature().getModifiers() ::::"
+ joinPoint.getSignature().getModifiers());
logger.info("******************************************************");
}
我在application-context.xml中启用了AOP,如下所示 -
<aop:aspectj-autoproxy proxy-target-class="true">
<aop:include name='loggingAspect' />
</aop:aspectj-autoproxy>
当我调用webservice时,会调用com.xyz.services中的方法,但是方法永远不会被调用。
我尝试使用不同的切入点,但方面代码从未执行过。
@Pointcut("execution(public * com.xyz.services.ManagerServiceImpl.*(..))")
public void logBefore() {
System.out.println("In Logbefore");}
@Pointcut("execution(public * com.xyz.services.*.*(..))")
public void logBefore() {
System.out.println("In Logbefore");
}
我在pom.xml上添加了cglib依赖项以启用基于cglib的代理。
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2.2</version>
</dependency>
任何人都可以帮助我解释为什么这些方面没有按预期工作?
答案 0 :(得分:0)
您是否已正确配置带有注释的课程?
filepermissions=$(docker exec -i container1 stat -c '%s' /home/ubuntu/tryme)