




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Recruitment 項(xiàng)目搭建與開(kāi)發(fā)指南Document Revision HistoryVer.No.Ver.DatePrepared ByAffected Section & Summary of;i),Draft of new document structure & content.2011-0830Eric/Amy/RitathRevise/add 4 chapter contentLi1-aaa ahad 4fa s a d* sad 4= a aa a w- had 4fa addNote: Template revision history is available belo
2、w as hidden text. Template Revision HistoryhVer.No.1Ver.PreparedDateBy1Reviewed 1ByApproved ByAffected Section & Summary of Change1-Table of Contents1總述這個(gè)Project完全基于開(kāi)源軟體的環(huán)境搭建。開(kāi)發(fā)涉及到的技術(shù)有Spring 3 +Hibernate 3 + Struts + JSP + JQuery + JAX-WS2 (by Apache CXF) + JAX-RS(by Jersey)+ SpringSecurity ?!癝pring
3、Side是以為核心,用主流的技術(shù)選型、Pragmatic的編程實(shí)踐來(lái)開(kāi)發(fā)JavaEE企業(yè)級(jí)應(yīng)用的總結(jié)與演示?!闭詓pringside 首頁(yè)。Recruitment 系統(tǒng)是一個(gè) Maven2風(fēng)格的 Project。介紹本文檔為Recruitment(暫定)系統(tǒng)開(kāi)發(fā)人員搭建開(kāi)發(fā)環(huán)境與開(kāi)發(fā)參考所用。結(jié)構(gòu)本文檔章節(jié)結(jié)構(gòu)如下。th chapter 開(kāi)發(fā)環(huán)境搭建3th chapter開(kāi)發(fā)調(diào)試th chapter Framework 介紹1.3參考文檔SpringSide官方網(wǎng)站:Mave2簡(jiǎn)介:SpringSide3技術(shù)參考手冊(cè):使用SpringSide3 開(kāi)發(fā)Web目的全過(guò)程:1.4 軟件包第二方軟件
4、地址+無(wú)Eclipse svn plugin無(wú)&characterEncoding=utf-8項(xiàng)目 Recruitment SVNproject)2搭建開(kāi)發(fā)環(huán)境Recruitment 項(xiàng)目項(xiàng)目的SVNt址:腳本:腳本會(huì)通過(guò) maven從nexus server上下載第三方依賴到本機(jī),目錄在 用戶名.m2Windows環(huán)境下工具安裝開(kāi)發(fā)工具(設(shè)置 JAVA_HOME)及以上版本,需要安裝 svN1件。Recruitment 項(xiàng)目 tools 目錄自帶了 Ant 以及 Maveno Ant(設(shè)置Path)一些bat檔利用Ant做些Task:初始化數(shù)據(jù)庫(kù)、項(xiàng)目部o Maven(設(shè)置Path)一利用此
5、工具做library 管理、項(xiàng)目生命周期管理。數(shù)據(jù)庫(kù)工具開(kāi)發(fā)環(huán)境及正式環(huán)境均選用mysql數(shù)據(jù)庫(kù)。=&characterEncoding=utf-8=root=root二腳本位置:部署工具recuritment 開(kāi)發(fā)環(huán)境選用的部署工具是tomcat7或tomcat6。3開(kāi)發(fā)調(diào)試3.1.1 導(dǎo)入 Eclipse 項(xiàng)目從 SVN server checkout代碼至U eclipse 的 workspace :1)設(shè)置 classpath variables為了保證recruitment 項(xiàng)目編譯成功,需要設(shè)置 classpath variables :Set M2_REPO Classpath
6、var ,它的值是 Maven默認(rèn)倉(cāng)庫(kù)目錄(vista 系統(tǒng) 用戶名 .m2repository )。Mysql驅(qū)動(dòng)設(shè)置將 C:Userstaliu.m2repositorymysqlmysql-connector-java放至U tomcat 的lib目錄下。Tomcat調(diào)試設(shè)置二圭介,一bL用參節(jié)項(xiàng)目部署正式環(huán)境部署:請(qǐng)參照與文件。4 初探 SpringSide FrameworkArchitect Convention,主介,-tz.用參芳CRUD,主介,-tz.用參芳API doc官網(wǎng)未提供,可以參考源碼。1)在下maven倉(cāng)庫(kù)有打包好的如下圖透過(guò)生成了 文檔,可以參考。核心類(lèi)圖cla
7、ss SimpleHibernateDaoentityClass)用于用于省略 Dao層,在Service層直接使用通用 SimpleHibernateDao 的構(gòu)造函數(shù).Method Summaryinthql, values)執(zhí)行HQLS行批量修改/刪除操作.inthql, values)執(zhí)行HQLS行批量修改/刪除操作.criterions)根據(jù)Criterion條件創(chuàng)建Criteria.queryString, values)根據(jù)查詢HQL與參數(shù)列表創(chuàng)建Query對(duì)象.queryString, values)根據(jù)查詢HQL與參數(shù)列表創(chuàng)建Query對(duì)象.void(id)按id刪除對(duì)象.v
8、oid(entity)刪除對(duì)象.criteria)為 Criteria 添加 distinct transformer.query)為 Query 添力口 distinct transformer.criterions)按Criteria查詢對(duì)象列表.hql, values)按HQL查詢對(duì)象列表.hql, values)按HQL查詢對(duì)象列表.propertyName, value)按屬性查找對(duì)象列表,匹配方式為相等.criterions)按Criteria查詢唯一對(duì)象. Xhql, values)按HQL查詢唯一對(duì)象. Xhql, values)按HQL查詢唯一對(duì)象. propertyName
9、, value)按屬性查找唯一對(duì)象,匹配方式為相等.void()Flush 當(dāng)前 Session.ids)按id列哀獲取對(duì)象列表.(id)按id認(rèn)取對(duì)象.()認(rèn)取全部對(duì)象.orderByProperty, booleanisAsc)認(rèn)取全部對(duì)象,支持按屬性行序.-()取得對(duì)象的主鍵名.()取得當(dāng)前 Session.()取得 sessionFactory.voidproxy)初始化對(duì)象.I-booleanpropertyName, newValue, oldValue)判斷對(duì)象的屬性值在數(shù)據(jù)庫(kù)內(nèi)是否唯一.void(entity)保存新增或修改的對(duì)象. .voidsessionFactory)米用
10、Autowired按尖型注入SessionFactory,當(dāng)有多個(gè)SesionFactory 的時(shí)候在子類(lèi)重載本函數(shù).class HibernateDaoT,PK extends 封裝SpringSide擴(kuò)展功能的Hibernat DAO泛型基類(lèi).擴(kuò)展功能包括分頁(yè)查詢, 按屬性過(guò)濾條件列表查詢.可在Service層直接使用,也可以擴(kuò)展泛型DAO?類(lèi) 使用,見(jiàn)兩個(gè)構(gòu)造函數(shù)的注釋.Author:calvinConstructor Summary ()用于Dao層子類(lèi)的構(gòu)造函數(shù).sessionFactory, entityClass)用于省略Dao層,Service 層直接使用通用 Hibernat
11、eDao的構(gòu)造函 數(shù).Method Summaryfilters)按屬性過(guò)濾條件列表查找對(duì)象列表.propertyName, value,matchType)按屬性查找對(duì)象列表,支持多種匹配方式.(page, criterions)按Criteria分頁(yè)查詢.(page, filters)按屬性過(guò)濾條件列表分頁(yè)查找對(duì)象.(page, hql, values) 按HQL分頁(yè)查詢.(page, hql, values) 按HQL分頁(yè)查詢.(page)分貞認(rèn)取全部對(duì)象.數(shù)據(jù)庫(kù)分頁(yè)開(kāi)發(fā)舉例:cvList的分頁(yè)1)創(chuàng)建公共的Page類(lèi),文件位置如下:2)創(chuàng)建公共有js文件,文件位置如下:3)點(diǎn)擊CV L
12、ist, 訪問(wèn)是src/main/java里代碼如下:page=new Page();(10);reateSQLQuery( ALLCV_STRII)I.GddEntity;().size();int firstResult=();etMaxResults(maxResults).list();(list); ize()=0)pageNc=pageNo-1;if (pageNo=0) pageNo=1;(pageN。; page = ( page); return SUCCESS 4)返回到的頁(yè)面是ajax/,頁(yè)面代碼如下:showPageStrNum($, $,5 , ajax/,);Str
13、uts convention插件實(shí)踐舉例: convention-plugin的約定:.默認(rèn)所有的結(jié)果頁(yè)面都存儲(chǔ)在web-inf/content下,你可以通過(guò)設(shè)置這個(gè)屬性的值來(lái)改變到其他路徑。如:則將路徑配置到了 web-inf/page 下。默認(rèn)包路徑包含 action,actions,struts,struts2的所有包都會(huì)被 struts 作為含有action類(lèi)的路徑來(lái)搜索。你可以通過(guò)設(shè)置屬性來(lái)修改這個(gè)配置。如:則定義了在項(xiàng)目中,包路徑包含web和action的將被視為action存在的路徑來(lái)進(jìn)行搜索。都將被視為含有action的包路徑而被搜索。接著,convention從前一步找到的p
14、ackage以及其子package中尋找的實(shí)現(xiàn)以及以action結(jié)尾的類(lèi): 1. ?.(implements ?.命名空間。從定義的.標(biāo)示開(kāi)始到包結(jié)束的部分,就是命名空間。舉個(gè)例子:的命名空間是: /user 。的命名空間是: /user/detail ”convention通過(guò)如下規(guī)則確定url的具體資源部分:去掉類(lèi)名的action部分。然后將 將每個(gè)分部的首字母轉(zhuǎn)為小寫(xiě),用-分割,你可以設(shè)置 如:還是舉個(gè)例子:useraction-user userdetailaction -user-detail。結(jié)合上面的。對(duì)于, 映射的 url 就是 /web-inf/content/user/de
15、tail/struts 支持.jsp .html .htm .vm 格式的文件。下面是action和結(jié)果模版的映射關(guān)系:|urlresultfile that could matchresult type以上的 內(nèi)容來(lái) 自struts2/hellosuccess/web-inf/content/dispatcher/hellosuccess/web-inf/content/dispatcher/hellosuccess/web-inf/content/freemarker的文檔/hello-worldinput/web-inf/content/velocity當(dāng)然,簡(jiǎn)單的 通過(guò)默/test1/
16、test2/helloerror/web-inf/content/test/test2/dispatcher認(rèn)的方式來(lái)進(jìn)行配置不能完全滿足實(shí)際項(xiàng)目的需要。所幸, convention的零配置是非 常靈活的。通過(guò)action注釋對(duì)如下例子:1. package?import ?import ?. publicclass helloaction extends actionsupport ?.action(action1) ?. public stringmethod1() ?. return success; ?. ?.action(/user/action2) ?. public string
17、method2() ?. return success; ?. ?.通過(guò)action注釋后方法名action注釋后調(diào)用路徑action注釋后映射路徑method1/action1!./web-inf/content/methodi/user/action2!/web-inf/content/user/通過(guò)actions注釋1. package?import ?import ?import ?. publicclass helloaction extends actionsupport ?.actions( ?.action(/different/url),?.action(/another/u
18、rl) ?.) ?. public stringmethod1() ?. return “error ” ; ?.我們可以通過(guò):/different/url! 或 /another/url! 來(lái)調(diào)用 method1 方法。對(duì)應(yīng)的映射路徑分另I是 /web-inf/content/different/; /web-inf/content/another/可能誤導(dǎo)了大家,一個(gè)方法被 action注釋后,只是多了一種調(diào)用方式,而不是說(shuō)覆蓋了原來(lái)的調(diào)用方式。比如對(duì)于如下例子:package?import ?import ?import ?publicclass helloaction extends
19、actionsupportaction(/another/url) ?public stringmethod1() ?return “error ” ; ?1.我們調(diào)用method1方法可以通過(guò)兩種方式:/hello!映射 url : /web-inf/content/another/url! 映射 url : /web-inf/content/another/可見(jiàn),兩種方式均可對(duì) methodi方法進(jìn)行調(diào)用,唯一的區(qū)別就是,兩種調(diào)用的映射是 不一樣的,所以,想跳轉(zhuǎn)到不同的界面,這是一個(gè)非常好的選擇。通過(guò) namespace注釋1. package?import ?import ?import
20、 ?namespace(/other) ?publicclass helloworld extends actionsupport ?public stringmethod1() ?return “error ” ; ? ?action(url) ?public stringmethod2() ?return “error ” ; ? ?action(/different/url) ?public stringmethod3() ?return “error ” ; ? ?通過(guò) /other/hello-world! 訪問(wèn) method1 方法。通過(guò)/other/url! 訪問(wèn)method2方
21、法通過(guò) /different /url! 訪問(wèn) method3 方法與2切。門(mén)注釋不同的是,該注釋覆蓋了默認(rèn)的namespace(這里是/),此時(shí)再用hello! 已經(jīng)不能訪問(wèn)method1 了.results 和伯$川11全局的(global )全局results 可以被action 類(lèi)中所有的 action 分享,這種 results 在action 類(lèi)上使 用注解進(jìn)行聲明1. package?import ?import ?import ?import ?import ?results( ?10.result(name=failure,location=/web-inf/) ?publi
22、cclass helloworld extends actionsupportpublic stringmethod1() ?return “failure ” ; ? ?action(/different/url) ?public stringmethod2() ?return “failure ” ; ? ?時(shí),返回 /web-inf/ 時(shí),返回 /web-inf/ 時(shí),返回 /web-inf/當(dāng)我們?cè)L問(wèn)/hello -world ! 當(dāng)我們?cè)L問(wèn)/hello -world !當(dāng)我們?cè)L問(wèn)/different/url!2本地的(local )。本地results 只能在action方法上進(jìn)行聲明1. package?import ?import ?import ?import ?import ?publicclass helloworld extends actionsupport ?10.action(value=/other/bar,results=result(name=error,locatio
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 芬蘭語(yǔ)中的顏色詞匯文化意義論文
- 2025年造價(jià)工程師案例分析經(jīng)典案例解析模擬試卷
- 2025-2030全球及中國(guó)電動(dòng)后視鏡行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2025年高壓電工考試題庫(kù):高壓電力系統(tǒng)運(yùn)行優(yōu)化設(shè)備投資計(jì)劃試題
- 生物多樣性保護(hù)立法-第1篇-全面剖析
- 沙漠化土壤微生物功能基因分析-全面剖析
- 2025年鄉(xiāng)村醫(yī)生考試題庫(kù)(基礎(chǔ)醫(yī)學(xué)知識(shí))歷年真題與解析試題卷
- 2025年阿拉伯語(yǔ)水平測(cè)試模擬試卷:阿拉伯語(yǔ)閱讀理解與詞匯積累練習(xí)
- 小學(xué)音樂(lè)教育中音樂(lè)欣賞能力的培養(yǎng)研究論文
- 2025年德語(yǔ)TestDaF考試模擬試卷:德語(yǔ)TestDaF考試閱讀與寫(xiě)作專(zhuān)項(xiàng)試題
- 2024年山東省青島市部分學(xué)校九年級(jí)中考二模數(shù)學(xué)試題(含答案)
- 河南省鄭州市中原區(qū)2023-2024學(xué)年三年級(jí)下學(xué)期期中考試數(shù)學(xué)試卷
- 日常保安服務(wù)投標(biāo)技術(shù)方案(技術(shù)標(biāo))
- 行政復(fù)議法-形考作業(yè)1-國(guó)開(kāi)(ZJ)-參考資料
- 中國(guó)軍事武器
- 八年級(jí)語(yǔ)文(完整版)標(biāo)點(diǎn)符號(hào)及使用練習(xí)題及答案
- 金屬非金屬地下礦山人員定位系統(tǒng)建設(shè)規(guī)范
- 中考語(yǔ)文專(zhuān)題復(fù)習(xí)十議論性文本閱讀市賽課公開(kāi)課一等獎(jiǎng)省名師獲獎(jiǎng)?wù)n件
- 噴塑車(chē)間安全培訓(xùn)
- 2024活躍用戶研究報(bào)告(小紅書(shū)平臺(tái))-千瓜-202404
- 市場(chǎng)營(yíng)銷(xiāo)策劃(本)-形考任務(wù)二(第五~七章)-國(guó)開(kāi)(CQ)-參考資料
評(píng)論
0/150
提交評(píng)論