Spring MVC搭建全過程_第1頁
Spring MVC搭建全過程_第2頁
Spring MVC搭建全過程_第3頁
Spring MVC搭建全過程_第4頁
Spring MVC搭建全過程_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、用了大半年的Spring MVC3.0,用著感覺不錯。簡單寫一個搭建Spring MVC3.0的流程(以為列),數(shù)據(jù)庫交互使用spring JDBC Template,附件有項目(沒有jar包)。整個項目架構如下圖所示:1、去官網下載所有jar包,所需jar包,見附件圖片,每個jar包得用處如下:的面向切面編程,提供AOP(面向切面編程)實現(xiàn)獨立的asm程序,相遇的時候需要asmJar包.3.0開始提供他自己獨立的asmJar提供對AspectJ框架的整合SpringIoC(依賴注入)的基礎實現(xiàn)的擴展支持,用于MVC方面提供在基礎IoC功能上的擴展服務,此外還提供許多企業(yè)級服務的支持,如郵件服

2、務、任務調度、JNDI定位、EJB集成、遠程訪問、緩存以及各種視圖層框架的封裝等的核心工具包表達式語言對Tomcat的連接池的集成對服務器的代理接口對JDBC的簡單封裝為簡化JMS API的使用而作的簡單封裝整合第三方的ORM框架,如hibernate,ibatis,jdo,以及spring的JPA實現(xiàn)org.springframework.oxm-3.0.0.RELEASE-Spring 對Object/XMl的映射支持,可以讓Java與XML之間來回切換對Junit等測試框架的簡單封裝為JDBC、Hibernate、JDO、JPA等提供的一致的聲明式和編程式事務管理SpringMVC的增強

3、對JEE6.0 Servlet3.0的支持整合Struts的時候的支持SpringWeb下的工具包2、借鑒spring官網寫法,建立一個src-resources Source Folder,再新建目錄META-INF,存放springmvc-servlet.xml和jdbc-context.xml文件(事務和數(shù)據(jù)庫連接池的管理);以及perties和perties。JDBC-context.xml文件:Xml代碼 1. 2. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. !-最大空閑時間,超過

4、空閑時間的連接將被丟棄29. 需要注意:mysql默認的連接時長為8小時(28800)【可在my.ini中添加wait_timeout=30(單位秒)設置連接超時】,這里設置c3p0的超時必須31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. springmvc-servlet.xml文件:Xml代碼 1. 2. 13. 14. 15. 16. 17. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.

5、33. 34. !-全局配置35. 36. 37. 38. -39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 3、修改web.xml文件如下:Xml代碼 1. 2. contextConfigLocation3. classpath:/META-INF/jdbc-context.xml4. 5. 6. 7. 8. 9. 10. 11. spring-mvc12. 13. 14. contextConfigLocation15. classpath:/META-INF/springmvc-servlet.xml16. 17. 118. 19. 20. 21. sp

6、ring-mvc22. /23. 24. 25. 26. encodingFilter27. 28. 29. 30. 31. encodingFilter32. /*33. 4、從springmvc-servlet.xml中可以知道,我把jsp頁面放在WEB-INF/views目錄中,靜態(tài)文件(圖片,js,css等)放在Resources目錄中,便于管理。5、以上配置文件基本完成,下面開始代碼編寫:首先說幾個常用的注解:Java代碼 1. Autowired自動注入根據(jù)類型注入Autowired可以對成員變量、方法以及構造函數(shù)進行注釋,而Qualifier的標注對象是成員變量、方法入參、構造函

7、數(shù)入參。2. Resource自動注入根據(jù)名稱注入,可寫參數(shù)name=3. Controller表示控制器4. Service表示業(yè)務處理層一般在serviceImpl5. Repository表示持久層一般在daoImpl6. Component當你的類不清楚是哪一層的時候使用該注解7. ResponseBody異步返回數(shù)據(jù)類型為json8. RequestMapping路徑,請求類型等設置9. InitBinder數(shù)據(jù)綁定注解的詳細介紹:也可以參考:首先寫一個BaseController,可做一些數(shù)據(jù)綁定之類的全局操作(如:把日期字符串轉換為Date日期)。Java代碼 1. Contro

8、ller2. publicclassBaseController3. 4. InitBinder5. protectedvoidininBinder(WebDataBinderbinder)6. SimpleDateFormatsdf=newSimpleDateFormat(yyyy-MM-dd);7. binder.registerCustomEditor(Date.class,newCustomDateEditor(sdf,true);8. 9. 然后寫一個攔截器,攔截器有兩種實現(xiàn)方式,1、繼承HandlerInterceptorAdapter類,2、實現(xiàn)HandlerIntercepto

9、r接口。Java代碼 1. /*2. *自定義攔截器3. *authortushen4. *dateNov5,20115. */6. publicclassMyInterceptorextendsHandlerInterceptorAdapter7. 8. /*9. *最后執(zhí)行,可用于釋放資源10. */11. Override12. publicvoidafterCompletion(HttpServletRequestrequest,13. HttpServletResponseresponse,Objecthandler,Exceptionex)14. throwsException15

10、. /TODOAuto-generatedmethodstub16. super.afterCompletion(request,response,handler,ex);17. 18. 19. /*20. *顯示視圖前執(zhí)行21. */22. Override23. publicvoidpostHandle(HttpServletRequestrequest,24. HttpServletResponseresponse,Objecthandler,25. ModelAndViewmodelAndView)throwsException26. 27. (request.getContentTy

11、pe()+-+request.getCharacterEncoding()+-+request.getContextPath();28. (MyInterceptor.postHandle()-viewName:+modelAndView.getViewName();29. super.postHandle(request,response,handler,modelAndView);30. 31. 32. /*33. *Controller之前執(zhí)行34. */35. Override36. publicbooleanpreHandle(HttpServletRequestrequest,37

12、. HttpServletResponseresponse,Objecthandler)throwsException38. 39. Stringurl=request.getRequestURI();40. 41. (MyInterceptor.preHandle()+url);42. 43. returnsuper.preHandle(request,response,handler);44. 45. 在Util包中DBUtil.java中實現(xiàn)Spring JDBC Template的封裝,操作數(shù)據(jù)庫;寫一個DaoException繼承spring的運行時異常類NestedRuntimeE

13、xception,在數(shù)據(jù)庫操作異常時拋出該異常,在controller層進行處理。寫一個抽象的BaseDao接口和BaseDaoImpl實現(xiàn)類,讓所有模塊共享使用(詳見附件)。Java代碼 1. /*2. *3. */4. package;5. 6. import;7. import;8. import;9. 10. /*11. *authortushen12. *dateNov5,201113. */14. publicinterfaceBaseDao15. 16. /*17. *保存或者更新實體18. *paramsql19. *paramentry20. */21. voidsaveOr

14、UpdateObject(Stringsql,Tentry);22. 23. /*24. *查詢實體列表25. *paramsql26. *paramclassName27. *paramobj28. *return29. */30. ListgetObjList(Stringsql,ClassclassName,Objectobjs);31. 32. /*33. *查詢實體34. *param35. *paramsql36. *paramobjs37. *return38. */39. TgetObject(Stringsql,Classclazz,Objectobjs);40. 41. /

15、*42. *查詢一個Map集合43. *paramsql44. *paramobjs45. *return46. */47. Mapfind(Stringsql,Objectobjs);48. 49. /*50. *批量操作51. *paramsql52. *paramobjLs53. */54. voidbatchOperate(Stringsql,ListobjLs);55. 56. /*57. *判斷實體是否存在58. *paramsql59. *paramobj60. *return61. */62. intisExist(Stringsql,Objectobj);63. 64. /*65. *編輯操作66. *paramsql6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論