本次所用版本為:Struts 1.3.9 Spring 2.5 Hiberante 3.2 開發(fā)工具 " /> 99re久久热在线播放8,动漫美女的禁,欧美性猛交AAA片免费观看

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

搭建SSH時的思考和遇到的幾個問題的解決方法

SSH流行很久了,一直看到官方文檔和網(wǎng)上都在講如何整合SSH,討論各種整合的優(yōu)缺點(diǎn)。今天我比較閑,也用我的一些想法來試著整合這三個最流行的框架。

本次所用版本為:Struts 1.3.9   Spring 2.5   Hiberante 3.2
開發(fā)工具和環(huán)境為:Eclipse 3.3+MyEclipse 6.0+JBoss 4.2+Tomcat

用SSH時,我們的架構(gòu)自然就會分成三層,即表現(xiàn)層,邏輯層和持久層,按照Martin Flower的指導(dǎo)思想,耦合越少越好,下層為上層提供服務(wù),這也是Rod開發(fā)Spring的指導(dǎo)思想之一,所以我首先想到的就是如何減少到最低的耦合。
根據(jù)Spring 2.0官方文檔中推薦的做法,Spring與Struts1.x集成,有采用代理類的方式,也有用ActionSupport的方式,但是我認(rèn)為這兩種方式無疑都有很強(qiáng)的侵入性和依賴性,這與Spring的思想有些矛盾。
我采用AutowiringRequestProcessor來做,這個類會自動為你裝載你所需要的Service,根據(jù)其Java Doc的提示,其默認(rèn)是byType匹配的,當(dāng)然你也可以用byName的方式,我認(rèn)為以Type的方式就OK了。來看看兩個配置文件吧,先來看看Struts的配置文件struts-config.xml:

 1  <? xml version="1.0" encoding="UTF-8" ?> 
 2  <! DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd" > 
 3  
 4  < struts-config > 
 5      < form-beans > 
 6          < form-bean  name ="loginForm"  type ="com.***.ssh.view.login.LoginForm"   /> 
 7      </ form-beans > 
 8  
 9      < global-exceptions  /> 
10      < global-forwards  /> 
11      < action-mappings > 
12          < action  name ="loginForm"  path ="/login"  scope ="request" 
13             type ="com.***.ssh.view.login.LoginAction"  validate ="false"   /> 
14      </ action-mappings > 
15     
16      < controller
17          processorClass ="org.springframework.web.struts.AutowiringRequestProcessor"   /> 
18  
19      < message-resources  parameter ="ApplicationResources"   /> 
20  </ struts-config > 
21  
22  
這個文件中可以發(fā)現(xiàn),跟沒有與Spring集成時就一點(diǎn)不一樣,多了一行:
 <controller  processorClass="org.springframework.web.struts.AutowiringRequestProcessor" />

再來看看Spring的配置文件applicationContext.xml:

 1  <? xml version="1.0" encoding="UTF-8" ?> 
 2  <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd" > 
 3  
 4  < beans > 
 5  
 6      < bean  id ="SSHSessionFactory" 
 7         class ="org.springframework.orm.hibernate3.LocalSessionFactoryBean" > 
 8          < property  name ="configLocation" > 
 9              < value > classpath:hibernate.cfg.xml </ value > 
10          </ property > 
11      </ bean > 
12     
13      < bean  name ="LoginService" 
14         class ="com.***.ssh.biz.login.LoginService"  singleton ="false" > 
15          < property  name ="dao" > 
16              < ref  bean ="UsersDao"   /> 
17          </ property > 
18      </ bean > 
19  
20      < bean  id ="UsersDao"  class ="com.***.ssh.persistence.UserDao" > 
21          < property  name ="sessionFactory" > 
22              < ref  bean ="SSHSessionFactory"   /> 
23          </ property > 
24      </ bean > 
25  </ beans > 
26  
這里面也沒有多余的內(nèi)容,不會出現(xiàn)代理方式時,多份XML同時配置的問題,減少了維護(hù)量。
同時,你會發(fā)現(xiàn),我并沒有把Hibernate的具體配置放在這里面,而是用Hibernate自身的配置來管理。

這樣的話,我們?nèi)龑又g的依賴性會降到較低,兩頭可以任意換到其中的某一層。

順便要說的是,常見的書籍上面發(fā)現(xiàn)往往不會有如此深入的探討,難道是怕初學(xué)者看不懂嗎?
另外,對于一個架構(gòu)來說,要解決的問題決不是指這些,通常我們可以采用RUP的4+1視圖的方法去考慮架構(gòu)的方方面面。我們也可以從以下一些方面來各個擊破:安全性,數(shù)據(jù)輸入輸出的校驗(yàn)與轉(zhuǎn)換,國際化,LOG,異常處理,異構(gòu)系統(tǒng)整合,后臺運(yùn)行程序等等。如果是多個數(shù)據(jù)庫,我們還需要更多的考慮事務(wù)控制。

我想我后面會去完善這個整合,并實(shí)現(xiàn)一個Demo,作為小的簡單的項(xiàng)目快速開發(fā)的基礎(chǔ)。



整合時遇到過如下問題:
問題1:啟動時出現(xiàn) “嚴(yán)重: Error listenerStart ”
這個問題,網(wǎng)上有很多解決辦法:
有一種最簡單的解決辦法是把用Listener初始化Spring改為用Servlet初始化Spring,但這樣的方法不太好,一是沒有找到根源,二是可能會帶來新的問題。
比較好的一種解決辦法是,加上Log4J的相關(guān)配置,然后再啟動時,就會出現(xiàn)各類詳細(xì)信息,這樣可根據(jù)具體信息再來解決,一般可能是DataSource配置,或環(huán)境配置有問題。
參考網(wǎng)址:http://hi.baidu.com/xht314/blog/item/808ecf13c1dd1820dd5401af.html

問題2:遇到“Required extension qdox not found”這樣的提示
網(wǎng)上也有解答,我用的方法是直接把commons-attributes-compiler.jar這個包去掉。當(dāng)然如果你要用到這個包的話,可以參考下面這個地址:
http://hi.baidu.com/sky_lei/blog/item/77ee17085543b232e8248824.html

問題3:Struts包與Spring包沖突的問題
我遇到包有沖突,換成Struts需要的優(yōu)先就OK了,現(xiàn)在的JAR檔越來越麻煩了,很多項(xiàng)目的JAR檔都被開發(fā)人員搞得亂七八糟,看來Maven是個好東西,至少思想是好的,可能下一步需要研究一下。

jsp技術(shù)搭建SSH時的思考和遇到的幾個問題的解決方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 中文字幕成人在线观看 | 99久久99久久精品国产片果冻 | 国产成人在线观看网站 | 永久免费看mv网站入口 | 国产乱对白精彩在线播放 | 无码日本亚洲一区久久精品 | 高清毛片一区二区三区 | 午夜特级毛片 | 久久久久免费视频 | 久久AV国产麻豆HD真实乱 | 伦理在线影院伦理电影 | gratis videos欧美最新 | 福利社影院| 久欠热视频精品首页 | 热中文热国产热综合 | 午夜DV内射一区二区 | 野花高清影视免费观看 | 国产在线播放精品视频 | 97精品国产自产在线观看永久 | 亚洲伊人精品 | 亚洲黄视频在线观看 | 日韩一卡二卡三卡四卡免费观在线 | 无码内射成人免费喷射 | 亚洲精品国产乱码AV在线观看 | 校园纯肉H教室第一次 | 青柠在线观看视频在线高清完整 | 国自产精品手机在线视频 | 国产亚洲精品久久久久久久 | 色噜噜视频影院 | 国产午夜精品自在自线之la | 久久中文字幕人妻AV熟女 | 色欲天天婬色婬香影院 | 免费人妻AV无码专区五月 | 久久综合中文字幕无码 | 日本久久频这里精品99 | 儿子好妈妈的HD3中字抢劫 | 色姊姊真舒服 | 美女被撕开胸罩狂揉大乳 | 麒麟色欧美影院在线播放 | 久久综合香蕉久久久久久久 | 国产麻豆剧看黄在线观看 |