Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 指定正确的spring instrument agent jar的最佳实践_Java_Spring_Tomcat_Aspectj_Proxy Classes - Fatal编程技术网

Java 指定正确的spring instrument agent jar的最佳实践

Java 指定正确的spring instrument agent jar的最佳实践,java,spring,tomcat,aspectj,proxy-classes,Java,Spring,Tomcat,Aspectj,Proxy Classes,我计划在基于Spring的web应用程序中使用AspectJ的loadtime编织特性进行代理。实现这一目标所需的三件事(AFAIK)是: 将代理模式设置为“aspectj”(与“proxy”相反) 将spring方面和aspectjweaver添加到类路径中 将spring instrument代理添加到VM启动 我的问题是关于如何实现#3的最佳实践。我关注的原因是: 因为这是应用程序启动时需要的,所以我不能让它指向我的webapp的WEB-INF/lib位置中的spring instrume

我计划在基于Spring的web应用程序中使用AspectJ的loadtime编织特性进行代理。实现这一目标所需的三件事(AFAIK)是:

  • 将代理模式设置为“
    aspectj
    ”(与“
    proxy
    ”相反)
  • spring方面
    aspectjweaver
    添加到类路径中
  • spring instrument
    代理添加到VM启动
  • 我的问题是关于如何实现#3的最佳实践。我关注的原因是:

  • 因为这是应用程序启动时需要的,所以我不能让它指向我的webapp的
    WEB-INF/lib
    位置中的spring instrument jar。我想在我的CATALINA_HOME/lib中放置一个静态
    spring仪器
    jar,可以直接参考
  • 随着web应用程序的发展,可能会升级spring版本,我们可能会忘记升级
    CATALINA_HOME/lib
    中的jar版本
  • 许多不同的应用程序可能使用相同的
    CATALINA_HOME
    ,并且并非总是能够让每个人都以锁步方式升级
    spring instrument
    jar
  • 由于这个问题似乎是一个普通问题,我想从其他人那里了解他们是如何解决这个问题的


    谢谢

    根据容器的不同,您不需要
    spring instrumentation.jar
    。您的配置中只有一个
    就足够了


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

    取决于您的容器,您不需要插装,一个
    就足够了。tomcat、jboss、web logic和web sphere都支持这一点。为了让它在tomcat上工作,您需要一个最新版本。以tomcat的一个特定示例为例,我想您仍然需要
    CATALINA_HOME/lib
    中的TomcatInstrumentableClassLoader,我们仍然需要为其添加相应版本的
    spring.instrument.tomcat jar
    ,对吗?不,你不需要。也许我没有使用正确版本的tomcat。你能说出tomcat的一个版本吗?谢谢您需要一个相当新的Spring4.0或更高版本,以及一个tomcat的最新版本,我相信是第8版。