指定正确的弹簧乐器代理jar

时间:2016-02-01 16:35:52

标签: java spring tomcat aspectj proxy-classes

我计划在基于Spring的Web应用程序中使用AspectJ的加载时编织功能进行代理。实现这一目标所需的三件事(AFAIK)是:

  1. 将代理模式设置为“aspectj”(而不是“proxy”)
  2. spring-aspectsaspectjweaver添加到类路径
  3. spring-instrument代理添加到VM启动
  4. 我的问题是关于如何实现#3的最佳实践。我关注的原因是:

    1. 由于在应用程序启动时需要这样做,我不能指向我的webapp WEB-INF/lib位置的spring-instrument jar。我想在我的spring-instrument中放置一个可以直接引用的静态CATALINA_HOME/lib jar。
    2. 随着Web应用程序的进展,可能会出现Spring版本升级的情况,我们可能忘记在CATALINA_HOME/lib中升级jar版本。
    3. 许多不同的应用程序可能使用相同的CATALINA_HOME,并且并不总是让所有人以锁定步骤方式升级spring-instrument jar。
    4. 由于这个问题似乎是一个普通问题,我想知道其他人如何解决这个问题。

      谢谢!

1 个答案:

答案 0 :(得分:1)

根据容器的不同,您不需要spring-instrumentation.jar。配置中的单<context:load-time-weaver />就足够了。

您需要最新版本的Tomcat(版本8),Jetty,WebSphere,Weblogic或JBoss。