好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁(yè) > 知識(shí)庫(kù) > 搭建SSH時(shí)的思考和遇到的幾個(gè)問(wèn)題的解決方法

搭建SSH時(shí)的思考和遇到的幾個(gè)問(wèn)題的解決方法

熱門標(biāo)簽:騰訊地圖標(biāo)注商戶改名注冊(cè)入駐 淮南騰訊地圖標(biāo)注 地圖標(biāo)注人員兼職 電話機(jī)器人的特色和創(chuàng)新 漯河辦理400電話 商丘百應(yīng)電話機(jī)器人有沒(méi)有效果 黃石智能營(yíng)銷電銷機(jī)器人效果 怎樣把地圖標(biāo)注出來(lái) 開(kāi)封便宜外呼系統(tǒng)報(bào)價(jià)
SSH流行很久了,一直看到官方文檔和網(wǎng)上都在講如何整合SSH,討論各種整合的優(yōu)缺點(diǎn)。今天我比較閑,也用我的一些想法來(lái)試著整合這三個(gè)最流行的框架。

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

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

再來(lái)看看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  
這里面也沒(méi)有多余的內(nèi)容,不會(huì)出現(xiàn)代理方式時(shí),多份XML同時(shí)配置的問(wèn)題,減少了維護(hù)量。
同時(shí),你會(huì)發(fā)現(xiàn),我并沒(méi)有把Hibernate的具體配置放在這里面,而是用Hibernate自身的配置來(lái)管理。

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

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

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



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

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

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

您可能感興趣的文章:
  • SSH框架網(wǎng)上商城項(xiàng)目第10戰(zhàn)之搭建商品類基本模塊
  • SSH框架網(wǎng)上商城項(xiàng)目第3戰(zhàn)之使用EasyUI搭建后臺(tái)頁(yè)面框架
  • ssh項(xiàng)目環(huán)境搭建步驟(web項(xiàng)目)
  • java-SSH2實(shí)現(xiàn)數(shù)據(jù)庫(kù)和界面的分頁(yè)
  • Java框架SSH結(jié)合Easyui控件實(shí)現(xiàn)省市縣三級(jí)聯(lián)動(dòng)示例解析
  • SSH框架網(wǎng)上商城項(xiàng)目第25戰(zhàn)之使用java email給用戶發(fā)送郵件
  • Java實(shí)現(xiàn)SSH模式加密
  • Java的web開(kāi)發(fā)中SSH框架的協(xié)作處理應(yīng)用筆記
  • MyEclipse整合ssh三大框架環(huán)境搭載用戶注冊(cè)源碼下載

標(biāo)簽:武威 紅河 馬鞍山 大興安嶺 亳州 岳陽(yáng) 拉薩 鄭州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《搭建SSH時(shí)的思考和遇到的幾個(gè)問(wèn)題的解決方法》,本文關(guān)鍵詞  搭建,SSH,時(shí),的,思考,和,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《搭建SSH時(shí)的思考和遇到的幾個(gè)問(wèn)題的解決方法》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于搭建SSH時(shí)的思考和遇到的幾個(gè)問(wèn)題的解決方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 苍井空《色欲迷墙》在线观看| 非常污的网站| 欧美孕妇挤奶孕交| 国产一级AAAAA片免费| 欧洲.亚洲男人的天堂1Av国产| 女m被主人绑着调教1v1宠| 东北大坑肉体乱| 99精品欧美一区二区三区视频| 日本二区免费一片黄2019| 免费看黄色的视频| 各种妇女ⅩXXXX撒尿| 无码欧美精品一区二区蜜桃色欲| 放荡潮湿的小内裤法国| 国产福利99| 久久成人| 欧洲男男Gay做受ⅩXX男| 影音先锋女人aV鲁色资源网七七| 人獸交ZZZZ00XXXXX| narutomanga玖辛奈之乳| 日韩国产成人资源精品视频| 经典三级视频| 男人自慰出精黄AAAAA片| 久久精品丰满熟女| 国产码一区二区三区| 嗯啊不要射| 成年网站未满**毛片免费| 777奇米第四在线精品视频| 国产人妻熟女ⅩXXX网站小| 动漫美女被揉胸视频| 荫道添到高潮免费视频| 布拉芙夫人在线看| 99久久久久久久无码| 丰满多水的寡妇| 影院欧美在线看免费| 特黄特色一级特色大片app| 精品久久免费一区二区三区四区 | 欧美激情在线精品一区二区三区| 伊人久久大香线蕉精品教学 | 九色蝌蚪97丨人妻无码| 亚洲IV秘?一区二区三区| 爽爽影|