看点被注入,但建议未被调用

时间:2017-08-25 09:01:17

标签: java spring aop aspectj spring-aop

我已经解决了许多SO问题,以了解Spring AOP上的配置,但我无法找到解决问题的方法。因此简要介绍了配置

获得maven多模块项目,包含4个模块boot,service,dao和aop。

在启动maven模块中执行BeanInitialization classe

package a.b.c;
// imports . . .
@Configuration
@EnableAspectJAutoProxy
public class BeanInitialization {
    @Bean
    public MyAspect getMyAspect(){
        return new MyAspect();
    }
    @Bean MyDaoImpl getMyDaoImpl(){
        return new MyDaoImpl();
    }
    // more initializations goes here
}

MyDaoImpl.java如下表单服务模块

package d.e.f;
// imports . . .
public class MyDaoImpl implements MyDao{
    public ReturnObject create(param1, param2){
        // some logic goes here
    }
    // some other methods
}

来自aop maven模块的MyAspect.java

package x.y.z;
@Aspect
public class MyAspect(){
    @After("execution(public * d.e.f.MyDaoImpl.create(..))")
    public void doStuffAfterMethodExecution(){
        // do some stuff here
    }
}

Serivce图层只调用dao图层。

我经历了很多形式和问题。据我所知,每一个配置都很好。除了这些之外,在完成create方法时没有执行建议。

我在这里遗漏了什么吗?

以下是我有的mavne依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.1.8.RELEASE</version> 
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>4.1.8.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>4.1.8.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.aspectj</groupId>
    <artifactId>aspectjweaver</artifactId>
    <version>1.7.4</version>
</dependency>

我还包括了aspectj运行时依赖项。什么都没有成功。有人可以帮忙吗?

提前致谢

添加了调试堆栈跟踪 enter image description here 在这里,我想在DAO执行中的create方法完成后运行我的建议。 注意:为简单起见,我在上面的代码中修改了类名。控制流就像是身份验证过滤器,REST控制器,服务,最后是DAO

在Aspect中为REST控制器添加了@Before建议,如下所示,但是没有执行

@Before("execution(* <<package_Hierarchy>>.ResourceController.create(..)");

根据堆栈跟踪,它在控制器上创建了CGLIB代理(没有接口实现),但是没有在DAo对象上创建Java Dynamci代理

0 个答案:

没有答案