2011-12-14 67 views
1

在项目中,我们使用注释来定义方面。eclipse中的建议方法的标记

不幸的是,我不能让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 ,得到豆并运行建议的方法:

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(); 
    } 
} 

我在使用STS插件和STS本身的eclipse中试过这个。我从来没有在work()旁边得到一个红色箭头表示建议。

我错过了什么?

+0

我改变了这个例子,使用一个定义工作者和记录器的bean,aspect和``的XML,并且仍然没有看到标记建议的方法。有什么选择我必须启用? – CKuck 2011-12-15 10:05:03

+0

当我启用Spring Aspects Tooling时,它只是添加了AspectJ Nature,我可以看到标记,但AspectJ Nature不是我想要的。建议使用非托管实例或静态方法,这意味着使用AspectJ编译器。 – CKuck 2011-12-15 13:59:59

回答

1

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