问题标签 [load-time-weaving]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
467 浏览

java - 如何在非托管实例中自动装配类?

我有一个在服务器启动中创建的类。它用作客户端应用程序的入口方法。我无法改变这种行为。

虽然我想@Autowired在这个非托管类中使用 Spring。我读到aspectj编织可能是要走的路。它似乎已经按照日志执行:

但我的注入Dao服务仍然是null. 可能缺少什么?

启用编织(tomcat):

0 投票
1 回答
1588 浏览

spring - EnableLoadTimeWeaving 没有在 Web 应用程序上下文中编织其他配置

我尝试在我的项目中使用 spring weblogic LTW 来做一些 aop 的东西。我的项目是一个简单的 webapp servlet2.5,使用 spring mvc 3.2.6,在 weblogic 10.0 上运行。我在 web.xml 中有以下应用程序级别的配置设置

我的 web.xml 中还有一个 mvc 级别的配置设置

这是我的简化 web.xml

所以发生的事情是,MVCConfig它的扫描组件都是由 LTW 编织的,效果很好。但是LTW 并没有接收到CoreConfig它扫描的组件(所有 DAO) 。

我猜CoreConfigandAppConfig处于同一级别,所以当AppConfig andCoreConfig被加载时,LTW 还没有被触发。

我试图把它放在与LTWCoreConfig相同的级别MVCConfig,它被 LTW 拾取。

CoreConfig应该是应用程序级别,而不是 dispatchservlet 级别。由于许多 Spring Web MVC 应用程序为 DispatcherServlet 使用根上下文和子上下文。

所以我的问题是,如果我放入CoreConfig应用程序级别,如何让 LTW 拿起它?谢谢。

0 投票
2 回答
3674 浏览

java - 如果没有 -javaagent vm 选项,Spring AspectJ 编织如何工作?

我了解 Spring 避免使用-javaagentvm 选项以使其 AspectJ 加载时间编织工作,而是依靠类加载器来启动代理。

我认为 Java 规范规定使用 Java 代理的唯一方法是通过-javaagentvm 选项。

我错了吗?有人可以指导我阅读官方 Java 规范/文档来澄清我的审讯吗?

0 投票
4 回答
1564 浏览

spring - 如何为 JPA 存储库运行 Spring LoadTimeWeaving

我正在尝试将存储库支持添加到 Eclipselink JPA Spring 项目。Eclipselink 需要 LoadTimeWeaving——尽管这不是绝对正确的,但我稍后希望 Aspects 也能正常工作。

生产应用程序在 Tomcat 下运行,如果我继续进行而不尝试创建 JUnit,我现在可能已经完成了。我有一种感觉,也许我真正拥有的是 Eciplse (STS 3.4) 问题,因为它似乎忽略了我的备用类加载器。但这似乎很基本,必须起作用,而且我做错了什么。

我只使用注释和 Java 配置。相关代码如下。

配置

死的简单实体(删除了一些真正无聊的列):

当然是存储库:

最后是 JUnit:

我正在尝试使用此 VM ARG 运行 JUnit:-javaagent:C:\Users\Terry\.m2\repository\org\springframework\spring-agent\2.5.6.SEC03\spring-agent-2.5.6.SEC03 。罐

我也尝试添加 AspectJ weaver,但没有帮助 -javaagent:C:\Users\Terry\.m2\repository\org\aspectj\aspectjweaver\1.8.0\aspectjweaver-1.8.0.jar

我没有尝试过 Spring Tomcat weaver,但这似乎不是正确的方向。我读过人们在 JUnit 查找类文件时遇到问题。

如果不粘贴相当大的堆栈跟踪,这一切都归结为:

这当然是真的。该类加载器不支持编织。但是我已经非常非常努力地不使用该加载程序。任何帮助表示赞赏

0 投票
1 回答
1994 浏览

spring - AspectJ 加载时间编织不适用于 Spring bean

我面临同样的问题:

AspectJ 加载时间编织不适用于 Spring bean

返回“对象”的解决方案有效,但我不知道原因。

我经历过:

http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch08s08.html#aop-aj-ltw

但仍然没有线索。

0 投票
1 回答
1709 浏览

aspectj - 弹簧 AOP:VS

我正在寻找配置我的 API 的选项。我发现 Spring AOP 是分析方法的选项之一。

Spring AOP 中有两个选项来配置和使用方面:

  1. 上下文:加载时间编织器
  2. aop:aspectj-autoproxy

根据我的理解,第一个选项(load-time-weaver)在加载时执行编织而不创建任何代理对象。第二个选项(aspectj-autoproxy)创建代理对象。我对此是否正确?我相信,代理对象的创建可能会影响性能。不会吗?

考虑到更好的性能,最好选择哪个选项?两种方法的优缺点是什么?

0 投票
3 回答
630 浏览

spring - 当我尝试切换弹簧以使用加载时间编织时出现 ClassNotFoundException

<context:load-time-weaver/>在我的应用程序上下文中添加了一个。我已经在我的 pom.xml 中添加了必要的库和 javaagent

然后我收到以下错误

我该如何解决?

0 投票
1 回答
210 浏览

java - AspectJ 加载时间编织不起作用

我想配置我的 spring 项目以使用 AspectJ 加载时间编织。我做了以下工作:

  1. <context:load-time-weaver aspectj-weaving="on"/>在我的应用程序上下文中添加了一个
  2. 在缓存中添加了 aspectj
  3. 在我的 pom.xml 中添加了行

    /li>

我有一个测试,它失败了。

有人可以解释为什么它失败了吗?很明显,加载时间编织是行不通的。

0 投票
1 回答
2632 浏览

java - 我在春天使用加载时间编织。如何在码头设置类加载器?

我在春天使用加载时间编织。一切都适用于 websphere,因为它有自己的类加载器,但我在开发模式下遇到麻烦,我使用嵌入式码头。如何在码头设置类加载器?

当我运行它时,我看到以下错误

0 投票
2 回答
1991 浏览

spring - Spring 4 LTW 与 64 位 JVM 和 Tomcat 不兼容

作为迁移到 Java 8 和纪念 Spring 4 的一部分,我想我会升级到所有 64 位代码。此应用程序在 32 位上完美运行,但加载时间编织在 64 位上不起作用(实际上甚至无法加载)。

架构的细节:

  • Java 8.0.5(32 位或 64 位,视情况而定)
  • Tomcat 7.0.54(32 位或 64 位,视情况而定)
  • 春天 4.0.5
  • Eclipse 链接 2.5.1

在 Windows 上的 Spring Tool Suite 3.5.1 下进行测试。部署目标 RHEL

JVM启动:

有问题的 Bean:

错误非常简单:

我所做的只是更改为 64 位 JVM 并使用 64 位 Tomcat 容器。很多小时的谷歌搜索和尝试不同的版本和代理完全没有找到任何解决方案。任何想法表示赞赏。

更新:

这是一个标准的 Eclipse 服务器配置,所以我认为这基本上意味着 startup.sh 启动。附加的 JVM 属性如下所示。请注意,我们目前没有部署任何 AspectJ 方面,这是下一个版本。无论是否指定 AspectJ 编织器,结果都相同。

堆栈跟踪: