2012-01-16 120 views
1

我看到一些代碼,其中使用「簡單的負載定時器織女」,而在下面的Spring XML文件中聲明的EntityManager豆:爲什麼我們使用SimpleLoadTimeWeaver?

<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的目的是什麼?任何機構都可以讓我知道在這裏使用課程的優點&。

+0

你知不知道一般的織布是什麼?你熟悉AOP嗎? – Thomas 2012-01-16 09:03:50

+0

閱讀文檔,它說:「主要用於測試環境,在新創建的ClassLoader實例中執行所有類轉換就足夠了。」 – Dapeng 2012-01-16 09:04:15

+0

@Depeng:我已經閱讀了文檔,但是無法準確理解類的用途? – Ran 2012-01-16 09:06:19

回答

0

javadoc

的LoadTimeWeaver是構建和暴露了 SimpleInstrumentableClassLoader。

主要用於測試環境,其中足以讓 對新創建的類加載器 實例執行所有類轉換。

而且從SimpleInstrumentableClassLoaderjavadoc

簡單化執行的instrumentable ClassLoader的。

可用於測試和獨立環境。

+0

嗨,你能解釋我是什麼目的嗎?因爲我不明白醫生說的是什麼。 – Ran 2012-01-16 09:10:02

2

澄清什麼韋弗是:

AOP你定義是指在確定的點在你的代碼中調用邏輯,例如無論什麼時候召集二傳手。由於該邏輯是在您想要以這種方式進行裝飾的類之外開發的(您不希望自己將該邏輯放入所有設置器中),運行時需要一種方法來知道這應該被執行。

因此,在某個時間點(編譯時間或加載時間),AOP邏輯被添加到您的代碼中的所有適用於代理的點上,並生成(編譯)類代理。這個過程稱爲編織,因爲您的原始代碼和您定義的AOP邏輯是交織在一起的。

關於Spring AOP的更多信息,看看這裏:http://static.springsource.org/spring/docs/2.5.x/reference/aop.html

相關問題