当前位置: 首页 > 知识库问答 >
问题:

非常简单的Spring AOP切入点

乜明朗
2023-03-14
package com.baz;

@Aspect
public class ServiceAspect {
   @Pointcut("execution(* com.foo.ServiceImpl.create(..))")
    public void create() {}

    @Pointcut("execution(* com.bar.Subscription.setStatus(..))")
    public void setStatus() {}

    // works
    @AfterReturning(pointcut="create()", returning="retVal")
    public void afterCreate(Object retVal) {
        // omitted
    }

    // doesn't work
    @Before("setStatus()")
    public void status() {
        // omitted
    }

    // doesn't work
    @Before("setStatus() && args(status)")
    public void status(int status) {
        // omitted
    }

    // doesn't work
    @After("setStatus()")
    public void status() {
        // omitted
    }

    // doesn't work
    @AfterReturning(pointcut="setStatus()")
    public void status2() {
        // omitted
    }

    // doesn't work
    @AfterReturning(pointcut="setStatus()", returning="retVal")
    public void afterSetStatus(Object retVal) {
        // omitted
    }

    // doesn't work
    @Around("setStatus()")
    public Object aroundStatus(ProceedingJoinPoint pjp) throws Throwable {
        Object output = pjp.proceed();
        return output;
    }
}

这些方法如下所示:

public class Subscription extends FooBar implements Baz {
    public void setStatus(int status) { /* ... */ }
}

public class ServiceImpl implements Service {
    public Subscription create(Session session, Subscription template) { /* ... */ }
}

编辑

我尝试使用

我曾尝试直接在订阅上调用setstatus(),但它也没有捕捉到这一点。

Subscription subscription = new Subscription();
subscription.setStatus(1);

共有1个答案

拓拔曦
2023-03-14

认购认购=新认购();

Subscription.SetStatus(1);

订阅应该是要应用的方面的Spring管理bean,即您应该从applicationcontext中获得Subscription类型的对象,如下所示:

ClassPathXmlApplicationContext context = 
    new ClassPathXmlApplicationContext("classpath:META-INF/Spring.xml");
Subscription subscription = context.getBean(Subscription.class);
 类似资料:
  • 问题内容: 我的基础难题是我无法理解django模板,视图和url是如何捆绑在一起的……提示用户输入字符串,然后使用该字符串查询数据库的最简单,最简单的最小方法是什么(最好是w / python模型而不是原始sql查询)?我应该使用GET和POST方法吗?我应该使用表格吗?我需要使用模板还是可以使用通用视图? 当我尝试提交输入时,它只是重新加载了输入页面。 views.py: urls.py 模板

  • 问题内容: 我试图找到一个非常简单,流畅,轻巧的javascript或jquery字幕。我已经尝试过丝绸选框之类的东西,但不适用于我正在使用的应用程序。因此,越短越好,越好-并且越容易调试。有人知道字幕易于实现的JavaScript替换吗? 码 问题答案: 希望这对您有所帮助,加油! html jQuery代码

  • 本文向大家介绍js实现非常简单的焦点图切换特效实例,包括了js实现非常简单的焦点图切换特效实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现非常简单的焦点图切换特效的方法。分享给大家供大家参考。具体分析如下: 这是一个非常非常简单的焦点图(更像滑动门),可供初学者借鉴参考 希望本文所述对大家的javascript程序设计有所帮助。

  • 本文向大家介绍非常简单的Shell菜单脚本,包括了非常简单的Shell菜单脚本的使用技巧和注意事项,需要的朋友参考一下 本文给大家分享一个自己简单编写的Shell菜单脚本,傻瓜式的人机交互,人人都可以操作linux。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 问题内容: 简单的问题,但我花了一个多小时。我的代码如下。我需要使SomeClass sc动态化。因此,您将类名作为字符串传递给函数,然后使用该类代替静态someClass。怎么做呢? 我想要的是 编辑:上面是简化。实际的代码是这个 另一个简单的改写:我使用request.getRequest()得到一个对象。我不知道那个物体是什么。因此,我需要将其强制转换为提供的类字符串名称。怎么做?就这样。–

  • 主要内容:非常简单的英语自我介绍【篇1】,非常简单的英语自我介绍【篇2】,非常简单的英语自我介绍【篇3】,非常简单的英语自我介绍【篇4】,非常简单的英语自我介绍【篇5】,非常简单的英语自我介绍【篇6】,非常简单的英语自我介绍【篇7】,非常简单的英语自我介绍7篇 非常简单的英语自我介绍?有很多人以为自我介绍很难写?其实是没有抓住精髓,把简单的问题给复杂化了。那么下面小编给大家带来了非常简单的英语自我介绍,供大家参考。 非常简单的英语自我介绍【篇1】 My surname is Li wen, lo