Java 为什么我们要使用SimpleLoadTimeWeaver?
我看到一些代码使用“Simple Load Timer Weaver”,同时在spring xml文件中声明entityManager bean,如下所示: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:
<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到底是什么?嗨,你能解释一下使用这个课程的目的是什么吗?因为我不清楚医生说的是什么。