我们可以使用Spring-AOP摆脱Aspects的bean定义

时间:2013-01-04 22:34:53

标签: spring spring-aop aop

我的观点如下:

@Aspect
public class SomeAspect{
    //define pointcuts
    // define Advices pertaining to pointcuts
}

我的aspect-config xml文件:

<?xml ...?>
  <beans ...
   xmlns:aop
   xmlns:context ..>
      <bean id="someAspect" class="...SomeAspect"/>
      <aop:aspectj-autoproxy />

  </beans>

这完全没问题

我需要什么:

我想摆脱每个Aspect的写bean定义,如上面的config xml文件中所示。

我尝试了以下内容:

@Component上添加了SomeAspect,在xml中添加了<context-component-scan>包含我的Aspect的相应包,希望我的类能够被选为Bean和Aspect。 但是,我的看点根本没有被接受。

任何指针?

1 个答案:

答案 0 :(得分:4)

context:component-scan元素有一个子元素,可用于包含用于扫描拾取的注释类。

查看context:include-filter元素及其属性。

<context:component-scan base-package="my.package.to.scan">
    <context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect"/>
</context:component-scan>

我认为你所尝试的会有所作为,但如果没有像你那样完全看到它,很难肯定地说。