Spring 建议不要在春季AOP中被调用
我已经声明了建议dao调用的以下方面,我正在尝试运行@Before advice,但它不起作用 这是一个方面Spring 建议不要在春季AOP中被调用,spring,spring-aop,Spring,Spring Aop,我已经声明了建议dao调用的以下方面,我正在尝试运行@Before advice,但它不起作用 这是一个方面 package com.hedgebenefits.aop; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; @Aspect public class AccessControlAspect { @Before("within(com.hedgebenef
package com.hedgebenefits.aop;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
@Aspect
public class AccessControlAspect {
@Before("within(com.hedgebenefits.daos..*) && execution(public * *(..))")
public void daoCall() {
System.out.println("Before advice invoked for DAO method called ");
}
}
My application-context.xml具有以下标记
<aop:aspectj-autoproxy/>
我放了一个断点,但我可以看到它不是活动的,我肯定在这里犯了一些愚蠢的错误,但无法理解。建议。您的方面需要成为应用程序上下文的一部分
组件扫描
,请将@组件
添加到访问控制透视
,或设置组件扫描
过滤器以包含@方面
注释。要设置过滤器,请查看AccessControllerAspect
添加一个beanaop:aspectj autoproxy
是不够的。这会告诉已经是应用程序上下文一部分的bean如何进行aspecting,它不会自动包含它们
package com.hedgebenefits.daos.impl;
import com.hedgebenefits.daos.AdminDao;
import com.hedgebenefits.domain.Admin;
import org.springframework.stereotype.Repository;
@Repository
public class AdminDaoImpl implements AdminDao{
@Override
public void save(Admin admin) {
}
}