Java 为什么我们要使用SimpleLoadTimeWeaver?

Java 为什么我们要使用SimpleLoadTimeWeaver?,java,spring,Java,Spring,我看到一些代码使用“Simple Load Timer Weaver”,同时在spring xml文件中声明entityManager bean,如下所示: <bean id="entityManager" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceXmlLocation" value="classpath:

我看到一些代码使用“Simple Load Timer Weaver”,同时在spring xml文件中声明entityManager bean,如下所示:

<bean id="entityManager" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
    <property name="persistenceXmlLocation" value="classpath:./META-INF/persistence.xml" />
    <property name="persistenceUnitName" value="testDB" />
    <property name="dataSource" ref="dataSource" />
    <property name="loadTimeWeaver">
        <bean class="org.springframework.instrument.classloading.SimpleLoadTimeWeaver" />
    </property>
</bean>

我无法确定SimpleLoadTimeWeaver类在这方面的用途?有谁能告诉我在这里上课的利弊。

来自

LoadTimeWeaver,它构建并公开 SimpleInstrumentableClassLoader

主要用于测试环境,在这些环境中 在新创建的类加载器上执行所有类转换 例如

并从
SimpleInstrumentableClassLoader

可检测类加载器的简单实现

在测试和独立环境中可用

要澄清什么是织工:

使用AOP,您可以定义在代码中的定义点调用的逻辑,例如,每当调用setter时。由于该逻辑是在您希望以这种方式装饰的类之外开发的(您不想自己将该逻辑放入所有setter中),因此运行时需要一种方法来知道应该执行该逻辑

因此,在某个时间点(编译时或加载时),AOP逻辑将添加到代码中应用它的所有点,并生成(和编译)类代理。这个过程称为编织,因为您的原始代码和您定义的AOP逻辑是编织在一起的


有关Spring AOP的更多信息,请查看此处:

您知道一般的编织工是什么吗?你熟悉AOP吗?读一下文件,上面写着“主要用于测试环境,在新创建的类加载器实例上执行所有类转换就足够了。@Depeng:我已经阅读了文档,但还不能完全理解类的用途?@Thomas:我不知道waver是什么。我刚刚从某个网络上获取了这些代码并在我的应用程序中使用。所以这就是我的问题,weaver到底是什么?嗨,你能解释一下使用这个课程的目的是什么吗?因为我不清楚医生说的是什么。