您好,登錄后才能下訂單哦!
本篇內容介紹了“MyEclipse如何構建SSH框架”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
MyEclipse構建SSH框架,用的是MyEclipse6.6,如果是不同版本的話,導入的Sturts或其他包的時候有一些不同。
1 、打開MyEcclipse,建立一個web Project。
2、 在工程名下點右鍵MyEclipse--﹥Add Sturts;添加完成后在WEB-INF文件夾下會多出一個struts-config.xml文件。知道操作Struts的人一定不會對它陌生。
3、 繼續添加Spring, 同樣是在工程下右鍵MyEclipse——﹥Add Spring... (哎呀! 現在還不曉得怎么在這里貼圖片,以后研究好了再找機會補上吧)。配這個的時候有些麻煩,User Libraries要勾上,下面的框框里面的最前面四個要勾上,還有一個J2EE的,Web的,和***面Hibernate的3個要勾上。大家要看清楚了啊,一共要勾上9個勾。然后選擇Copy ... 的那個單選按鈕。點Next,把applicationContext.xml放在工程的web-inf文件夾下面。然后Finish。Spring也就添加完成了。
4 、添加Hibernate,這個最麻煩不過了。在添加Hibernate之前,首先要在MyEclipse里面配置數據庫。點擊MyEclipse右上角的MyEclipse DataBase ... 新建一個數據庫連接,選好數據庫種類(我用的是MySQL),配好地址和數據庫名字,添上登陸名和密碼,加上Jar包,才能算是配好。這是屬于Hibernate里面應該講的東西,這里就不多說了。同樣MyEclipse --﹥ Hibernate... 該勾的全都勾上,Next, 這里注意要選擇Spring configuration file。Next,選擇Exsting Spring configuration, 在SessionFactory Id里寫上 sf (這是我的習慣,你可以改成別的,只要到時候出現的時候你認得就行).Next,在BeanId里填Bean(同樣是我的習慣),在下面選擇你配好的數據庫。Next,去掉Create SessionFactory勾,就不用寫什么東西了,Finish。
5 、注意了!!!, 添加Spring一定要在添加Hibernate之前,Struts可以在任何順序下添加。
MyEclipse的工作做完后,我們自己也要做一些工作。他畢竟不是全能。
(1)我們要手動添加commons-collections.jar commons-pool.jar,還要手動刪除asm-2.2.3.jar包。寫完這篇Blog之后我會上傳一個實例到CSDN的下載里面,需要添加的包可以在那里面找到。至于為什么要添包刪包,老師給過我們解釋,我只是模糊記得好像是在用到某個方法的時候會報錯。畢竟三種框架在整合的時候肯定是需要一些改動的,而且在MyEclipse6.0版本是不能同時使用SSH框架的,包會相沖突的。還好在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、現在為止,只是基本的包和配置文件弄好了而已。其實也可以說是完成了大部分,SSH三個框架的所有功能都可以在這個工程下面使用了。是不是很爽!
7、然后開始建包吧。這里的包是指在src下面建立的類包的名字。每個人做項目可能會有不同的建包習慣,老師給過我們一種‘習慣’,個人覺得龐大了一點,雖然分工很明確,邏輯性很強,可移植性也很好,但是操作起來太麻煩。我只給我自己做項目時習慣建的包吧。
hbm(hibernate數據庫方向工程時導入的地方),
iface(接口類放的地方),
impl(實現類放的地方),
servlet(雖然有Struts的Action,但是有時候還是可以用到自己寫的Servelt的)
struts,struts.action,struts.form(Struts自己生成的包)
page(寫分頁類的地方)
還有其他包就看各自的需求了。
8、開始正式寫代碼。這個工作就不能由我提大家完成了。
!!!寫代碼時候要特別注意的地方:
(1)在Struts的配置文件struts-config.xml里,每添加一個Action都要把type修改為org.springframework.web.struts.DelegatingActionProxy
(2)每一個Action都要在Spring的配置文件applicationContext.xml對應有一個Bean。
Bean的名字不能用Id,要用name屬性代替而且值必須是Action的路徑,一定要加上斜杠。例如name="/myAction".
這兩點要多看幾變,剛開始熟悉SSH框架的時候經常會忘記這一步(我就是這樣)。
(3)在涉及關系表的查詢的時候(都用到SSH框架了,怎么可能沒有多表查詢)還要一些優化。
在通過某個表查找另外一個表的時候,Hibernate不會查找出來。我們可以通過修改Hibernate某個表的延遲加載去掉,Lazy="false";這樣Hibernate就可以查到了。但是如果有很多級關聯的表,它也會一并查出來,不管你有沒有用到。這樣的性能會很低下,這是最簡單的方法,也是老師最抵制的一種方法。Spring有一個類可以使Hibernate的多表查詢變得更優化。當你需要查到某個表時它就幫你查出來,否則它就不查(難道這就是傳說中的人工智能!!!)。具體做法:
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"/﹥
這樣就可以查找了,但添加的時候會報錯。
要在所有的增加、刪除、修改的方法里面加上@Transactional(readOnly=false)
如果有父類,那么就在父類BaseImpl的增加、刪除、修改的方法里面加上@Transactional(readOnly=false)
呼~,終于完工了。希望沒有遺漏什么東西。這是我***篇技術文章,如果有什么錯誤希望能有所指正。如果對各位有幫助,也希望大家多多鼓勵。
我會上傳一個SSH框架的HelloWorld的例子。如果有什么不明白的地方可以在CSDN上下載了參考。
PS. 例子已經上傳到http://download.csdn.net/source/1176598
注意:這個里面只有代碼,沒有jar包。整個例子有三十多M,csdn只能上傳15M的東西,所以我把lib文件夾的.jar包全部刪了再傳上去的。需要添加的commons-collections.jar和 commons-pool.jar包我也打包在一起了。數據庫的文件也在。是從MySQL導出來的.sql文件。大家可以自己導入自己的數據庫。如果是不同的數據庫,代碼和需要需要導入的JDBC驅動包有所不同。
“MyEclipse如何構建SSH框架”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。