SSH整合筆記

2021-08-21 07:00:55 字數 911 閱讀 5458

版本:spring4+struts2+hibernate4

1.ssh整合啟動tomcat遇到的問題 error creating bean with name 'org.springframework.transaction.interceptor.transa

解決:加入下面配置

注:如果框架中整合了struts2,此***應該在struts2的***前面

-->

opensession

org.springframework.orm.hibernate4.support.opensessioninviewfilter

3.could not initialize proxy - no session

原因:出現該錯誤的原因是hibernate使用sessionfactory來管理session,我們每進行一次資料庫操作時都會新建乙個session物件,當我們操作完成後,hibernate就會在dao層立即關閉該session。所以當我們操作類中另乙個類的具體屬性時,因為session已經關閉,就會報錯。

這是hibernate的懶載入策略,因為每一次查詢我們並不會使用到查詢物件關聯的所有物件,所有hibernate在查詢資料庫時並不會把類關聯的物件統一查出來。

第一種辦法:

最直接的辦法就是把hibernate的懶載入機制關閉,方法:

在對映檔案中多對一對映處寫 : lazy="false"

但是這種辦法不推薦,取消懶載入之後每次查詢用不用得到的物件都要載入出來,很影響效率。

第二種辦法:

不要hibernate去管理session,而是將session交給servlet filter來管理,每當接收乙個請求後就會開啟乙個session,只有當響應結束後才會關閉。

具體做法:

在web.xml中配置(放在最前面):

問題解決

筆記 ssh整合

4 配置hibernatetemplate 配置好的 hibernatetemplate不能用繼承,setsessionfactory所有的類是抽象類 所有只能把hibernatetemplate注入到dao中 解決的方法,自己寫乙個類daosupport繼承自hibernatetemplate 手...

SSH框架整合筆記

ssh框架整合jar包衝突問題 原因 因為hibernate和spring都要用到cglib.jar這個包,cglib.jar用的asm.jar和spring用的asm.jar本身就有衝突,hibernate兩個asm.jar都可以用 簡單來說就是hibernate和spring兩者用的asm.ja...

ssh整合之筆記

ssh 整合的時候在struts.xml中 administrator index.jsp addmenu.jsp 當設定的type為redirect的時候在action類中要使用session級別 map request map actioncontext.getcontext get sessi...