我想在Struts中使用Hibernate。如果我擴展調用Hibernate Utility類的FilterDispacther
,這會是一個不錯的實踐嗎?擴展Struts框架的FilterDispatcher是否是一個好習慣?
任何人有任何意見?我想討論這種方法的優缺點。
我想在Struts中使用Hibernate。如果我擴展調用Hibernate Utility類的FilterDispacther
,這會是一個不錯的實踐嗎?擴展Struts框架的FilterDispatcher是否是一個好習慣?
任何人有任何意見?我想討論這種方法的優缺點。
請勿延伸FilterDispatcher
。
正如duffymo指出,如果你需要建立和拆除當前請求一個Hibernate會話,你應該使用一個攔截器。您也可以使用他鏈接的OpenSessionInViewInterceptor
,或者如果您不使用Spring,則可以使用create your own。
像你想擁有類似Spring的OpenSessionInViewInterceptor功能,這聽起來我。如果是的話,另一個框架已經做了這樣的事實表明這是一個很好的做法。
的點通常是你不想將過濾器映射到所有請求 - 例如,你不需要交易,一些網頁 - 爲FilterDispatcher的API文檔說,
重要:此過濾器必須映射到所有請求。除非你確切地知道你在做什麼,否則總是映射到這個URL模式:/ *
所以FilterDispatcher是全部或全部。這說明了一箇舊的過濾器是以視圖模式打開會話的更好選擇。
我不知道春天。但問題是'FilterDispatcher'已被棄用。 – 2011-05-29 14:37:25
爲什麼不只是一個過濾器? FilterDispatcher爲您做的是什麼? – duffymo 2011-05-29 14:39:23
'公共無效的init(一個FilterConfig一個FilterConfig)拋出的ServletException { \t \t super.init(一個FilterConfig); \t \t嘗試{ \t \t \t HibernateUtil.createSessionFactory(); \t \t \t是System.out.print( 「=========應用Intialization ======」); \t \t} \t \t趕上(HibernateException的發送){ \t \t \t擲新的ServletException(); \t \t} \t}' FilterDispatcher剛剛打開一個會話。沒有其他的.. – 2011-05-29 14:51:15