1. 程式人生 > >SSH最新框架整合-spring5.0.8+hibernate5.3.2+struts2.5.16(JDK9)

SSH最新框架整合-spring5.0.8+hibernate5.3.2+struts2.5.16(JDK9)

這幾天學習了下SSH框架,(如果現在還想學SSH框架的勸退,原因呢自己百度就知道了),發現在整合的過程中出現各種問題,網上也沒有比較好的整合部落格,基本都是過時的部落格不太適合學習(主要是框架更新較快,會發生巨大變化,也許幾年後你看到這篇部落格時它也已經過時了),現在記錄一下我是怎麼整合的,以及在整合過程中所遇到的問題,現在大家照著做基本是沒有問題,因為很多坑我已經踩過了,我也會給大家一一說明的,廢話少說,直接開始。

第一步就是引入jar包(最好大家和我的版本基本保持一致):

struts2包:

hibernate包(required包中):

spring包:匯入spring所有的jar包(去掉資源包和文件包)

如果使用的JDK9以上需要匯入另外四個jar包。

以及其他jar包:

下面是整合後所有的jar包,大家可以看看有沒有遺漏的。

注意如果缺少jar包就百度下載,千萬不能缺少!!!

下面就是配置檔案了,首先配置web.xml:

接下來配置struts.xml檔案:

最後配置applicationContext.xml

大家自主配置開啟事務的配置吧,百度一下就知道了。

再說一下我遇到的問題:

採用SSH框架後,hibernate的getCurrentSession就不能使用了,dao層需要繼承HibernateDaoSupport並在類上加上@Transactional

獲取session可以使用:Session session=getHibernateTemplate().getSessionFactory().openSession();或者Session session=getHibernateTemplate().getSessionFactory().getCurrentSession();

dao的bean層需要注入sessionFactory:

記住使用SSH框架後dao千萬不要使用new來建立,不然會出現空指標,無法注入sessionFactory;

如果遇到其他問題可以百度解決。按照我這有配置的基本沒有問題,再者就是編碼問題了。

我打算以後在這篇部落格長期更新,將自己踩過的坑,有價值的問題給大家列出來,供大家參考。

剛剛遇到一個問題,可能是自己粗心的原因,在整合專案時有些地方沒改,導致出現一些難以發現的bug,那麼簡單的說一下:

在使用Session session=getHibernateTemplate().getSessionFactory().openSession();的時候一定要加上session.close()關閉session不然專案會出現一個難以發現的bug。

在使用Session session=getHibernateTemplate().getSessionFactory().getCurrentSession();的時候是不能加session.close()的,spring會自動幫我們關閉的。