溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MyEclipse如何構(gòu)建SSH框架

發(fā)布時(shí)間:2021-07-14 16:22:39 來源:億速云 閱讀:152 作者:chen 欄目:編程語言

本篇內(nèi)容介紹了“MyEclipse如何構(gòu)建SSH框架”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

MyEclipse構(gòu)建SSH框架,用的是MyEclipse6.6,如果是不同版本的話,導(dǎo)入的Sturts或其他包的時(shí)候有一些不同。

1 、打開MyEcclipse,建立一個(gè)web Project。

2、 在工程名下點(diǎn)右鍵MyEclipse--﹥Add Sturts;添加完成后在WEB-INF文件夾下會(huì)多出一個(gè)struts-config.xml文件。知道操作Struts的人一定不會(huì)對它陌生。

3、 繼續(xù)添加Spring, 同樣是在工程下右鍵MyEclipse——﹥Add Spring... (哎呀! 現(xiàn)在還不曉得怎么在這里貼圖片,以后研究好了再找機(jī)會(huì)補(bǔ)上吧)。配這個(gè)的時(shí)候有些麻煩,User Libraries要勾上,下面的框框里面的最前面四個(gè)要勾上,還有一個(gè)J2EE的,Web的,和***面Hibernate的3個(gè)要勾上。大家要看清楚了啊,一共要勾上9個(gè)勾。然后選擇Copy ... 的那個(gè)單選按鈕。點(diǎn)Next,把a(bǔ)pplicationContext.xml放在工程的web-inf文件夾下面。然后Finish。Spring也就添加完成了。

4 、添加Hibernate,這個(gè)最麻煩不過了。在添加Hibernate之前,首先要在MyEclipse里面配置數(shù)據(jù)庫。點(diǎn)擊MyEclipse右上角的MyEclipse DataBase ... 新建一個(gè)數(shù)據(jù)庫連接,選好數(shù)據(jù)庫種類(我用的是MySQL),配好地址和數(shù)據(jù)庫名字,添上登陸名和密碼,加上Jar包,才能算是配好。這是屬于Hibernate里面應(yīng)該講的東西,這里就不多說了。同樣MyEclipse --﹥ Hibernate...  該勾的全都勾上,Next, 這里注意要選擇Spring configuration file。Next,選擇Exsting Spring configuration, 在SessionFactory Id里寫上 sf (這是我的習(xí)慣,你可以改成別的,只要到時(shí)候出現(xiàn)的時(shí)候你認(rèn)得就行).Next,在BeanId里填Bean(同樣是我的習(xí)慣),在下面選擇你配好的數(shù)據(jù)庫。Next,去掉Create SessionFactory勾,就不用寫什么東西了,F(xiàn)inish。

5 、注意了?。?!, 添加Spring一定要在添加Hibernate之前,Struts可以在任何順序下添加。

MyEclipse的工作做完后,我們自己也要做一些工作。他畢竟不是全能。

(1)我們要手動(dòng)添加commons-collections.jar commons-pool.jar,還要手動(dòng)刪除asm-2.2.3.jar包。寫完這篇Blog之后我會(huì)上傳一個(gè)實(shí)例到CSDN的下載里面,需要添加的包可以在那里面找到。至于為什么要添包刪包,老師給過我們解釋,我只是模糊記得好像是在用到某個(gè)方法的時(shí)候會(huì)報(bào)錯(cuò)。畢竟三種框架在整合的時(shí)候肯定是需要一些改動(dòng)的,而且在MyEclipse6.0版本是不能同時(shí)使用SSH框架的,包會(huì)相沖突的。還好在MyEclipse6.0.1以后的版本改過來了。

(2)在web.xml文件里面添加

﹤context-param﹥      ﹤param-name﹥contextConfigLocation﹤/param-name﹥      ﹤param-value﹥/WEB-INF/applicationContext.xml﹤/param-value﹥     ﹤/context-param﹥     ﹤listener﹥      ﹤listener-class﹥org.springframework.web.context.ContextLoaderListener﹤/listener-class﹥     ﹤/listener﹥

(3)在struts-config.xml里面添加

﹤plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"﹥      ﹤set-property property="contextConfigLocation" value="/WEB-INF/bean.xml" /﹥   ﹤/plug-in﹥

6、現(xiàn)在為止,只是基本的包和配置文件弄好了而已。其實(shí)也可以說是完成了大部分,SSH三個(gè)框架的所有功能都可以在這個(gè)工程下面使用了。是不是很爽!

7、然后開始建包吧。這里的包是指在src下面建立的類包的名字。每個(gè)人做項(xiàng)目可能會(huì)有不同的建包習(xí)慣,老師給過我們一種‘習(xí)慣’,個(gè)人覺得龐大了一點(diǎn),雖然分工很明確,邏輯性很強(qiáng),可移植性也很好,但是操作起來太麻煩。我只給我自己做項(xiàng)目時(shí)習(xí)慣建的包吧。

hbm(hibernate數(shù)據(jù)庫方向工程時(shí)導(dǎo)入的地方),

iface(接口類放的地方),

impl(實(shí)現(xiàn)類放的地方),

servlet(雖然有Struts的Action,但是有時(shí)候還是可以用到自己寫的Servelt的)

struts,struts.action,struts.form(Struts自己生成的包)

page(寫分頁類的地方)

還有其他包就看各自的需求了。

8、開始正式寫代碼。這個(gè)工作就不能由我提大家完成了。

?。?!寫代碼時(shí)候要特別注意的地方:

(1)在Struts的配置文件struts-config.xml里,每添加一個(gè)Action都要把type修改為org.springframework.web.struts.DelegatingActionProxy

(2)每一個(gè)Action都要在Spring的配置文件applicationContext.xml對應(yīng)有一個(gè)Bean。

Bean的名字不能用Id,要用name屬性代替而且值必須是Action的路徑,一定要加上斜杠。例如name="/myAction".

這兩點(diǎn)要多看幾變,剛開始熟悉SSH框架的時(shí)候經(jīng)常會(huì)忘記這一步(我就是這樣)。

(3)在涉及關(guān)系表的查詢的時(shí)候(都用到SSH框架了,怎么可能沒有多表查詢)還要一些優(yōu)化。

在通過某個(gè)表查找另外一個(gè)表的時(shí)候,Hibernate不會(huì)查找出來。我們可以通過修改Hibernate某個(gè)表的延遲加載去掉,Lazy="false";這樣Hibernate就可以查到了。但是如果有很多級關(guān)聯(lián)的表,它也會(huì)一并查出來,不管你有沒有用到。這樣的性能會(huì)很低下,這是最簡單的方法,也是老師最抵制的一種方法。Spring有一個(gè)類可以使Hibernate的多表查詢變得更優(yōu)化。當(dāng)你需要查到某個(gè)表時(shí)它就幫你查出來,否則它就不查(難道這就是傳說中的人工智能?。。。>唧w做法:

1)在web.xml里面加上

﹤filter﹥     ﹤filter-name﹥hibernateFilter﹤/filter-name﹥     ﹤filter-class﹥org.springframework.orm.hibernate3.support.OpenSessionInViewFilter﹤/filter-class﹥    ﹤/filter﹥    ﹤filter-mapping﹥     ﹤filter-name﹥hibernateFilter﹤/filter-name﹥     ﹤url-pattern﹥*.do﹤/url-pattern﹥    ﹤/filter-mapping﹥

2)不需要開始在Struts配置文件struts-config.xml里的那段了,刪了它

xx﹤plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"﹥   xx ﹤set-property property="contextConfigLocation" value="/WEB-INF/bean.xml" /﹥   xx﹤/plug-in﹥

3)在Spring的配置文件applicationContext.xml里面添加事物注

開頭的地方添加

xmlns="http://www.springframework.org/schema/beans"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:tx="http://www.springframework.org/schema/tx"  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd   http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"﹥

再在后面添加

﹤bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"﹥   ﹤property name="sessionFactory" ref="sessionFactory"﹥﹤/property﹥   ﹤/bean﹥   ﹤tx:annotation-driven transaction-manager="txManager"/﹥

這樣就可以查找了,但添加的時(shí)候會(huì)報(bào)錯(cuò)。

要在所有的增加、刪除、修改的方法里面加上@Transactional(readOnly=false)

如果有父類,那么就在父類BaseImpl的增加、刪除、修改的方法里面加上@Transactional(readOnly=false)

呼~,終于完工了。希望沒有遺漏什么東西。這是我***篇技術(shù)文章,如果有什么錯(cuò)誤希望能有所指正。如果對各位有幫助,也希望大家多多鼓勵(lì)。

我會(huì)上傳一個(gè)SSH框架的HelloWorld的例子。如果有什么不明白的地方可以在CSDN上下載了參考。

PS. 例子已經(jīng)上傳到http://download.csdn.net/source/1176598

注意:這個(gè)里面只有代碼,沒有jar包。整個(gè)例子有三十多M,csdn只能上傳15M的東西,所以我把lib文件夾的.jar包全部刪了再傳上去的。需要添加的commons-collections.jar和 commons-pool.jar包我也打包在一起了。數(shù)據(jù)庫的文件也在。是從MySQL導(dǎo)出來的.sql文件。大家可以自己導(dǎo)入自己的數(shù)據(jù)庫。如果是不同的數(shù)據(jù)庫,代碼和需要需要導(dǎo)入的JDBC驅(qū)動(dòng)包有所不同。

“MyEclipse如何構(gòu)建SSH框架”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI