缺少STS中的Spring AOP库

时间:2011-06-25 01:58:40

标签: spring libraries spring-aop sts-springsourcetoolsuite

我和Spring一起湿透了。我下载了STS,我正在遵循Spring in Action Second Edition的基本示例。我在尝试实现基本AOP时遇到困难,我想我在项目中缺少一些特定的库。

我这样说是因为@Aspect等注释在我的类中无法识别,就像我的xml中的<aop:config>一样。

这是我的Maven依赖:

  • 的junit-4.7.jar
  • 弹簧 - 测试 - 3.0.2.RELEASE.jar
  • 弹簧上下文3.0.2.RELEASE.jar
  • 弹簧AOP-3.0.2.RELEASE.jar
  • aopalliance-1.0.jar
  • 弹簧豆-3.0.2.RELEASE.jar
  • 弹簧芯3.0.2.RELEASE.jar
  • 共享记录-1.1.1.jar
  • 弹簧表达-3.0.2.RELEASE.jar
  • 弹簧-ASM-3.0.2.RELEASE.jar
  • 的log4j-1.2.14.jar

请让我知道我遗失的图书馆以及在哪里找到它们。

谢谢!

修改

以下内容:

<bean id="performancePointcut"
        class="org.springframework.aop.aspectj.AspectJExpressionPointcut" >
    <property name="expression" value="execution(* Performer+.perform(..))" />
</bean>

抛出以下异常:

  

线程“main”中的异常org.springframework.beans.factory.BeanCreationException:在文件[C:\ Users \ Prova \ Documents \ STS \ SpringIdol3 \ src \ main \ resources \中定义名称为'performancePointcut'的bean时出错META-INF \ spring \ spring-idol.xml]:bean的实例化失败;嵌套异常是java.lang.NoClassDefFoundError:org / aspectj / weaver / reflect / ReflectionWorld $ ReflectionWorldException

完成!

aspectj-annotation-tutorial完成了第1步,第2步和第3步的工作。

周五晚上一直很有趣......

2 个答案:

答案 0 :(得分:13)

将这两个依赖项放在pom.xml中:

    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjrt</artifactId>
        <version>1.6.11</version>
    </dependency>
    <dependency>
        <groupId>org.aspectj</groupId>
        <artifactId>aspectjweaver</artifactId>
        <version>1.6.11</version>
    </dependency>

答案 1 :(得分:2)

你可以添加maven依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aspects</artifactId>
    <version>4.2.4.RELEASE</version>
</dependency>