什么是'编织'?

时间:2010-07-30 12:38:18

标签: spring jpa computer-science terminology

在阅读有关Spring如何工作的内容时,我已经看过这个术语,我刚刚阅读了有关JPA实现性能的文章,它有下一个统计数据:

EclipseLink                                                           3215 ms
(Run-time weaver - Spring ReflectiveLoadTimeWeaver weaver  )
EclipseLink (Build-time weaving)                                      3571 ms
EclipseLink (No weaving)                                              3996 ms

那么,有人可以用简单的英语解释什么是编织

谢谢!

8 个答案:

答案 0 :(得分:8)

来自here

  

在Spring中,AOP可以模块化和分离日志记录,事务类似服务,并以声明方式将它们应用于组件因此程序员可以专注于特定的问题。方面以JavaBean的方式连接到spring XML文件中的对象。这个过程被称为“编织”。

答案 1 :(得分:6)

编织是通过直接修改现有的.class(字节码)文件来生成或编辑代码。 这可能发生在应用程序生命周期的不同阶段。

  1. JVM之外 在编译时 在包装时间
  2. 在JVM中 在课堂加载时间。 课程加载后。
  3. Spring Framework将此用于AOP功能。 Eclipselink使用编织进行延迟加载或更改跟踪。

答案 2 :(得分:2)

Weaving is the process of linking aspects with other application types or objects to create an advised object. Weaving can be done at compile time, at load time, or at runtime.

There are two ways in which classes and aspects can be woven: static or dynamic.

Spring AOP does dynamic weaving of aspects by creating proxy of the target objects.

It uses either JDK dynamic proxies or CGLIB to create the proxy for a given target object. (JDK dynamic proxies are preferred whenever you have a choice).

For more details..

答案 3 :(得分:2)

我觉得这个描述很有用:

Weaving:这是在应用程序代码中插入切面的过程 适当的点。对于编译时 AOP 解决方案,这种编织一般是完成的 在构建时。同样,对于运行时 AOP 解决方案,执行编织过程 在运行时动态[使用JDK‌动态代理和CGLIB代理]。 AspectJ 支持另一种称为加载的编织机制 时间编织 (LTW),它拦截底层 JVM 类加载器并 在类加载器加载字节码时提供对字节码的编织。

参考:Pro Spring 5: An In-Depth Guide to the Spring Framework and Its Tools

答案 4 :(得分:0)

开发的面向对象的软件系统 使用面向方面的编程技术 由课程和方面组成。类实现 应用程序的主要功能, 例如,管理股票或计算 保险费率。另一方面,方面是捕获 技术问题,如持久性,故障处理, 通信或进程同步。

类和方面有两种方式 可编织:静态或动态。

静态编织是指通过在的插入aspect-specic语句来修改类的源代码 加入点。在其他 单词:方面代码内联到类中。该 结果是高度优化的编织代码,其执行 速度可与编写的代码相媲美 不使用方面。

答案 5 :(得分:0)

Weaving是一种操作已编译Java类的字节码的技术。

参考:http://www.eclipse.org/eclipselink/documentation/2.5/concepts/app_dev007.htm

干杯!

答案 6 :(得分:0)

编织是将方面与其他应用程序类型或对象链接以创建建议对象的过程。编织可以在编译时,加载时或运行时完成。 Spring AOP在运行时执行编织。

答案 7 :(得分:0)

简而言之,我们可以说

编织是将建议应用于 Target 对象的过程 在给定的切入点处获取代理对象。