Spring中 什么是织入。什么是织入应用的不同点?
在Spring框架中,"织入"(Weaving)是指将切面(Aspect)与目标对象(Target Object)结合的过程。切面是一个关注点(如日志、事务管理等)的模块化,而目标对象是应用程序的核心业务逻辑。织入可以在不同的时间点进行,主要有以下几种方式:
编译时织入(Compile-time Weaving):在编译Java源代码时,将切面代码织入到目标类中。这通常需要使用特定的编译器,如AspectJ编译器。
类加载时织入(Load-time Weaving):在类被加载到JVM时,织入切面。这种方式通常需要使用特定的类加载器,并且可以在运行时动态地应用切面。
运行时织入(Runtime Weaving):在运行时通过代理机制(如JDK动态代理或CGLIB)将切面应用到目标对象。这是Spring AOP的主要实现方式。
织入的时机:
使用的工具和框架:
性能:
灵活性:
总结来说,织入是将切面与目标对象结合的过程,而织入应用的不同点主要体现在织入的时机、使用的工具、性能和灵活性等方面。Spring AOP主要采用运行时织入的方式,以便于开发者在应用中灵活地使用切面编程。