我已经声明了以下方面建议dao调用,我正在尝试运行@Before建议,但它不起作用.
这就是方面.
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 ");
}
}
Run Code Online (Sandbox Code Playgroud)
我的application-context.xml具有以下标记
<aop:aspectj-autoproxy/>
Run Code Online (Sandbox Code Playgroud)
我的Dao课程如下:
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) {
}
}
Run Code Online (Sandbox Code Playgroud)
我放了一个断点,但我可以看到它不活跃,我肯定在这里做了一些愚蠢的错误,但无法搞清楚.PL.咨询.
您的方面需要成为应用程序上下文的一部分.
component-scan,请添加@Component到您的AccessControllerAspect,或设置component-scan过滤器以包含@Aspect注释.要设置过滤器,请查看Spring文档的3.10.3节(使用过滤器自定义扫描).AccessControllerAspect.添加的行为aop:aspectj-autoproxy是不够的.这告诉bean 已经是应用程序上下文的一部分如何进行方面,它不会自动包含它们.
| 归档时间: |
|
| 查看次数: |
4257 次 |
| 最近记录: |