版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Recruitment 項(xiàng)目搭建與開發(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完全基于開源軟體的環(huán)境搭建。開發(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í)踐來開發(fā)JavaEE企業(yè)級(jí)應(yīng)用的總結(jié)與演示。”摘自springside 首頁。Recruitment 系統(tǒng)是一個(gè) Maven2風(fēng)格的 Project。介紹本文檔為Recruitment(暫定)系統(tǒng)開發(fā)人員搭建開發(fā)環(huán)境與開發(fā)參考所用。結(jié)構(gòu)本文檔章節(jié)結(jié)構(gòu)如下。th chapter 開發(fā)環(huán)境搭建3th chapter開發(fā)調(diào)試th chapter Framework 介紹1.3參考文檔SpringSide官方網(wǎng)站:Mave2簡(jiǎn)介:SpringSide3技術(shù)參考手冊(cè):使用SpringSide3 開發(fā)Web目的全過程:1.4 軟件包第二方軟件
4、地址+無Eclipse svn plugin無&characterEncoding=utf-8項(xiàng)目 Recruitment SVNproject)2搭建開發(fā)環(huán)境Recruitment 項(xiàng)目項(xiàng)目的SVNt址:腳本:腳本會(huì)通過 maven從nexus server上下載第三方依賴到本機(jī),目錄在 用戶名.m2Windows環(huán)境下工具安裝開發(fā)工具(設(shè)置 JAVA_HOME)及以上版本,需要安裝 svN1件。Recruitment 項(xiàng)目 tools 目錄自帶了 Ant 以及 Maveno Ant(設(shè)置Path)一些bat檔利用Ant做些Task:初始化數(shù)據(jù)庫、項(xiàng)目部o Maven(設(shè)置Path)一利用此
5、工具做library 管理、項(xiàng)目生命周期管理。數(shù)據(jù)庫工具開發(fā)環(huán)境及正式環(huán)境均選用mysql數(shù)據(jù)庫。=&characterEncoding=utf-8=root=root二腳本位置:部署工具recuritment 開發(fā)環(huán)境選用的部署工具是tomcat7或tomcat6。3開發(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)倉庫目錄(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倉庫有打包好的如下圖透過生成了 文檔,可以參考。核心類圖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ù)庫內(nèi)是否唯一.void(entity)保存新增或修改的對(duì)象. .voidsessionFactory)米用
10、Autowired按尖型注入SessionFactory,當(dāng)有多個(gè)SesionFactory 的時(shí)候在子類重載本函數(shù).class HibernateDaoT,PK extends 封裝SpringSide擴(kuò)展功能的Hibernat DAO泛型基類.擴(kuò)展功能包括分頁查詢, 按屬性過濾條件列表查詢.可在Service層直接使用,也可以擴(kuò)展泛型DAO?類 使用,見兩個(gè)構(gòu)造函數(shù)的注釋.Author:calvinConstructor Summary ()用于Dao層子類的構(gòu)造函數(shù).sessionFactory, entityClass)用于省略Dao層,Service 層直接使用通用 Hibernat
11、eDao的構(gòu)造函 數(shù).Method Summaryfilters)按屬性過濾條件列表查找對(duì)象列表.propertyName, value,matchType)按屬性查找對(duì)象列表,支持多種匹配方式.(page, criterions)按Criteria分頁查詢.(page, filters)按屬性過濾條件列表分頁查找對(duì)象.(page, hql, values) 按HQL分頁查詢.(page, hql, values) 按HQL分頁查詢.(page)分貞認(rèn)取全部對(duì)象.數(shù)據(jù)庫分頁開發(fā)舉例:cvList的分頁1)創(chuàng)建公共的Page類,文件位置如下:2)創(chuàng)建公共有js文件,文件位置如下:3)點(diǎn)擊CV L
12、ist, 訪問是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)返回到的頁面是ajax/,頁面代碼如下:showPageStrNum($, $,5 , ajax/,);Str
13、uts convention插件實(shí)踐舉例: convention-plugin的約定:.默認(rèn)所有的結(jié)果頁面都存儲(chǔ)在web-inf/content下,你可以通過設(shè)置這個(gè)屬性的值來改變到其他路徑。如:則將路徑配置到了 web-inf/page 下。默認(rèn)包路徑包含 action,actions,struts,struts2的所有包都會(huì)被 struts 作為含有action類的路徑來搜索。你可以通過設(shè)置屬性來修改這個(gè)配置。如:則定義了在項(xiàng)目中,包路徑包含web和action的將被視為action存在的路徑來進(jìn)行搜索。都將被視為含有action的包路徑而被搜索。接著,convention從前一步找到的p
14、ackage以及其子package中尋找的實(shí)現(xiàn)以及以action結(jié)尾的類: 1. ?.(implements ?.命名空間。從定義的.標(biāo)示開始到包結(jié)束的部分,就是命名空間。舉個(gè)例子:的命名空間是: /user 。的命名空間是: /user/detail ”convention通過如下規(guī)則確定url的具體資源部分:去掉類名的action部分。然后將 將每個(gè)分部的首字母轉(zhuǎn)為小寫,用-分割,你可以設(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)容來 自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)單的 通過默/test1/
16、test2/helloerror/web-inf/content/test/test2/dispatcher認(rèn)的方式來進(jìn)行配置不能完全滿足實(shí)際項(xiàng)目的需要。所幸, convention的零配置是非 常靈活的。通過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; ?. ?.通過action注釋后方法名action注釋后調(diào)用路徑action注釋后映射路徑method1/action1!./web-inf/content/methodi/user/action2!/web-inf/content/user/通過actions注釋1. package?import ?import ?import ?. publicclass helloaction extends actionsupport ?.actions( ?.action(/different/url),?.action(/another/u
18、rl) ?.) ?. public stringmethod1() ?. return “error ” ; ?.我們可以通過:/different/url! 或 /another/url! 來調(diào)用 method1 方法。對(duì)應(yīng)的映射路徑分另I是 /web-inf/content/different/; /web-inf/content/another/可能誤導(dǎo)了大家,一個(gè)方法被 action注釋后,只是多了一種調(diào)用方式,而不是說覆蓋了原來的調(diào)用方式。比如對(duì)于如下例子:package?import ?import ?import ?publicclass helloaction extends
19、actionsupportaction(/another/url) ?public stringmethod1() ?return “error ” ; ?1.我們調(diào)用method1方法可以通過兩種方式:/hello!映射 url : /web-inf/content/another/url! 映射 url : /web-inf/content/another/可見,兩種方式均可對(duì) methodi方法進(jìn)行調(diào)用,唯一的區(qū)別就是,兩種調(diào)用的映射是 不一樣的,所以,想跳轉(zhuǎn)到不同的界面,這是一個(gè)非常好的選擇。通過 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 ” ; ? ?通過 /other/hello-world! 訪問 method1 方法。通過/other/url! 訪問method2方
21、法通過 /different /url! 訪問 method3 方法與2切。門注釋不同的是,該注釋覆蓋了默認(rèn)的namespace(這里是/),此時(shí)再用hello! 已經(jīng)不能訪問method1 了.results 和伯$川11全局的(global )全局results 可以被action 類中所有的 action 分享,這種 results 在action 類上使 用注解進(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問/hello -world ! 當(dāng)我們?cè)L問/hello -world !當(dāng)我們?cè)L問/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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年安徽馬鞍山市部分事業(yè)單位招考人員管理單位筆試遴選500模擬題附帶答案詳解
- 2025-2030年中國有機(jī)化學(xué)原料制造項(xiàng)目可行性研究報(bào)告
- 2025-2030年中國ups電源市場(chǎng)競(jìng)爭(zhēng)現(xiàn)狀及發(fā)展前景規(guī)劃研究報(bào)告
- 2025-2030年專家點(diǎn)評(píng):中國汽車行業(yè)發(fā)展環(huán)境及投資策略報(bào)告
- 2024-2030年消費(fèi)電子業(yè)功率器件搬遷改造項(xiàng)目可行性研究報(bào)告
- 2024-2030年辦公椅反覆靠背試驗(yàn)機(jī)公司技術(shù)改造及擴(kuò)產(chǎn)項(xiàng)目可行性研究報(bào)告
- DG-TJ 08-2048-2024 民用建筑電氣防火設(shè)計(jì)標(biāo)準(zhǔn)
- 2024年浙教版選修3歷史上冊(cè)月考試卷含答案728
- 山東省濰坊市五縣2025屆高考語文熱身訓(xùn)練考前押題含解析
- 暑期輔導(dǎo)專用2024年初高中物理銜接教材銜接點(diǎn)08重力和彈力含解析
- 《精益生產(chǎn)豐田》課件
- 金礦投資可行性方案
- 裝修工作的進(jìn)度報(bào)告
- 《食品包裝與安全》課件
- 普外科護(hù)士長述職報(bào)告
- 混凝土組織供應(yīng)運(yùn)輸售后服務(wù)方案
- +山東省泰安市肥城市2023-2024學(xué)年七年級(jí)上學(xué)期期末考試地理試題+
- 文物保護(hù)工作的調(diào)研報(bào)告(16篇)
- 成長計(jì)劃300字初中綜合素質(zhì)評(píng)價(jià)初三
- 口腔科會(huì)員制度
- 2023新能源場(chǎng)站一次調(diào)頻控制系統(tǒng)技術(shù)規(guī)范
評(píng)論
0/150
提交評(píng)論