近來還在整通用的業務系統框架,採用外掛程式的方式載入需要的配置,之前已實現了spring和struts2配置的動態載入,現在剩下hibernate的對映檔案動態載入還沒實現,於是搜資料查原始碼終於實現之。
1、重寫sessionfactory類
新建乙個類,繼承org.springframework.orm.hibernate3.localsessionfactorybean,
重寫newsessionfactory(configuration config),
在該方法中呼叫config.addfile()方法增加需要動態載入的hbm檔案,主要**:
[j**a]
public class shinesessionfactorybean extends localsessionfactorybean
} 2、修改spring配置檔案
將原來的org.springframework.orm.hibernate3.localsessionfactorybean改成重寫後的類,將之前在這裡配置的hbm路徑去掉,或者保留但不要和外掛程式注入的hbm檔案重複,其他屬性還是一樣。
[html]
然後重啟後生效,整合在系統中時得注意幾個問題:
1、如果newsessionfactory中是從系統的全域性變數中取需載入的hbm檔案的話,得在spring容器初始化前就給該全域性變數設定好值。
2、動態載入的hbm.xml檔案時確保檔案路徑是存在的,如果要載入的配置檔案在jar包中或者不在本機的得針對該配置檔案的讀取再做封裝。
3、如果系統中需有多個sessionfactory時,得讓不同的sessionfactory載入不同的hbm配置檔案(我通過為sessionfactory增加id屬性來控制)。
spring動態載入bean
廢話不多說,直接上 private static final string strs new string protected mapremotes new hashmap for int i 0 i string name one if i 0 beandefinitionbuilder user...
Spring 資源載入
pom.xml org.springframework spring core 4.3.14.release org.springframework spring beans 4.3.16.release org.springframework spring context 4.3.16.relea...
動態載入動態庫
message函式的宣告你應該知道吧,把它的宣告和下面的語句寫到乙個標頭檔案中 pragma comment lib,a.lib 然後你的對話方塊.cpp中包含這個標頭檔案就可以使用message函式了。如果dll沒有對應的.lib檔案,那麼就只能使用動態載入的方式了。動態呼叫動態庫步驟 1 建立乙...