首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring-AOP中未调用的建议

在Spring-AOP中未调用的建议
EN

Stack Overflow用户
提问于 2012-08-21 04:33:31
回答 1查看 4.9K关注 0票数 8

我已经声明了以下方面,它建议一个dao调用,我正在尝试运行@ trying,但它不起作用。

这就是方面。

代码语言:javascript
复制
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 ");
    }
}

我的application-context.xml具有以下标记

代码语言:javascript
复制
<aop:aspectj-autoproxy/>

我的Dao类如下:

代码语言:javascript
复制
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) {
    }
}

我设置了一个断点,但我可以看到它不是活动的,我肯定在这里犯了一些愚蠢的错误,但我找不到。Pl。建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-21 04:43:21

您的方面需要成为应用程序上下文的一部分。

  1. 如果您使用的是component-scan,请将@Component添加到您的AccessControllerAspect中,或者设置component-scan过滤器以包含@Aspect注释。要设置过滤器,请查看正在使用xml配置的section 3.10.3 of the Spring documentation (Using filters to customize scanning).
  2. If,为AccessControllerAspect.

添加一个bean

添加aop:aspectj-autoproxy的行为是不够的。这将告诉已经是应用程序上下文一部分的如何进行切面,它不会自动包含它们。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12044710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档