【问题标题】:Markers for advised methods in eclipseeclipse中建议方法的标记
【发布时间】:2011-12-15 19:21:01
【问题描述】:

在项目中,我们使用注解来定义方面。

很遗憾,我无法让 eclipse 在建议的方法旁边显示标记。

在另一个项目中,我们使用 XML 来定义方面和 eclipse 显示标记。

我最好发布一些代码来澄清:

首先要建议一个bean:

package aop.test;

import org.springframework.stereotype.Service;

@Service
public class Worker {
    public void work() {}
}

然后是方面:

package aop.test;

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.springframework.stereotype.Service;

@Aspect
@Service
public class WorkerLogger {
    @Before("execution(void aop.test.Worker.work())")
    public void log() {
        System.out.println("working...");
    }
}

最后是一个主要方法来准备 ApplicationContext,获取 bean 并运行建议的方法:

package aop.test;

import org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context;
        context = new AnnotationConfigApplicationContext();
        context.register(AnnotationAwareAspectJAutoProxyCreator.class);
        context.scan("aop.test");
        context.refresh();

        context.getBean(Worker.class).work();
    }
}

我在 Eclipse 中使用 STS 插件和 STS 本身进行了尝试。我从来没有在work() 旁边看到一个红色箭头,表明它是建议的。

我错过了什么?

【问题讨论】:

  • 我将示例更改为使用 XML 定义工作人员和记录器、方面和 <aop:aspectj-autoproxy/> 的 bean,但在建议的方法中仍然看不到任何标记。我必须启用某些选项吗?
  • 当我启用 Spring Aspects Tooling 时,它只会添加 AspectJ Nature 并且我可以看到标记,但 AspectJ Nature 不是我想要的。建议使用非托管实例或静态方法,这意味着使用 AspectJ 编译器。

标签: java eclipse spring annotations aop


【解决方案1】:

您是否在 Eclipse 上安装了 STS 插件?它应该在Help > Eclipse Marketplace 上可用

【讨论】:

  • 我不知道您可以将整个 STS 功能作为“常规”日食的插件。感谢那。不幸的是,我都没有得到红色箭头标记。
猜你喜欢
  • 2023-04-09
  • 1970-01-01
  • 2012-11-22
  • 1970-01-01
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2010-11-22
  • 2016-01-27
相关资源
最近更新 更多