精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

領略Spring 3.x時代的Spring MVC

開發 后端
鼎鼎大名的Spring框架3.0版在12月5日由其作者之一——Juergen Hoeller先生在博客里宣告問世,并命為里程碑版,給Spring粉絲們帶來了震撼的快感。筆者即開“快車”拉了兩個包回來,遺憾的是參考文檔至今還沒有出來(僅有API文檔),這為學習Spring 3.0帶來了非常大的困難,但沒有阻擋筆者對新產品的興趣。

鼎鼎大名的Spring框架3.0版在12月5日由其作者之一——Juergen Hoeller先生在博客里宣告問世,并命為里程碑版,給Spring粉絲們帶來了震撼的快感。筆者即開“快車”拉了兩個包回來,遺憾的是參考文檔至今還沒有出來(僅有API文檔),這為學習Spring 3.0帶來了非常大的困難,但沒有阻擋筆者對新產品的興趣。

 

Spring之父Rod Johnson先生早在2003年就預言EJB將死(觀點頗具爭議),攻擊EJB之臃腫是在虐待程序員。然而EJB 3.0出來后幾乎宣判Spring死刑,但自2.0版以后Spring火爆程度已經超過EJB,兩者的爭斗至今仍不停息,這也是Spring 3.0連文檔還沒有整理出來就匆匆推出的原因。當然,Spring與EJB有很多各自獨特優勢之處,例如EJB的分布式運算、標準規范,Spring的IoC、AOP切面編程、偶合集成、MVC等等,取各自之長在企業中應用如虎添翼。Spring目前已經加入了J2EE規范,J2EE世界將更加精彩......

 

或許是用膩了Struts1那死板的WEB框架,才對Spring MVC愛不釋手,尤其是2.5版本以后,支持全注解配置方式,已經使很久沒有再寫過xml文件了。

 

3.0版是完全兼容2.5,因此了解2.5版的@MVC則更容易接受。正如Arjen Poutsma小伙子在他的博客里說的那樣,3.0時代將集中致力于表述性狀態轉移(REST,希望我沒有翻譯錯,金山詞霸翻譯為“休息”)的網絡服務和更容易的網絡編程。的確增加了更多的控制器類型,并增強了SOAP/WSDL/WS這些基于分布式體系結構。

 

先回憶下2.5注解方式的@MVC,來一個示例:

  1. @Controller 
  2. public class ArticleController{  
  3.    
  4.   @RequestMapping("/articleView")  
  5.    public String getArticle(@RequestParam("id") String id, HttpServletRequest request){  
  6.     request.setAttribute("article", service.find(Article.class, id));  
  7.     return "articleView";  
  8.    }  
  9.    
  10. }  

ArticleController沒有實現任何接口,是一個最普通不過的pojo,如果瀏覽器來了articleView.do?id=xxx這個請求,Spring會找到getArticle()這個方法,該方法第一個參數綁定到了URL上的請求參數,第二個是J2EE標準的request對象(可見Spring MVC是非侵入式的,不像變態的Struts2),事實上還可以給定HttpServletResponse,ModelMap,甚至自己的類型,Spring都會為你將值傳入進來。通過一個邏輯層service組件根據id參數值去底層查找Article對象,并放入request作用域中,最后返回的是面頁視圖名,這個例子中是返回到articleView.jsp中。

 

上例再變通下:

  1. @Controller 
  2. public class ArticleController{  
  3.    
  4.   @RequestMapping("/articleView_*")  
  5.    public String getArticle(HttpServletRequest request){  
  6.    
  7.     String id = StringUtil.getParam(request.getRequestURI(),"articleView_*");  
  8.     request.setAttribute("article", service.find(Article.class, id));  
  9.     return "articleView";  
  10.    }  
  11.    

對于articleView_aaa.do,articleView_bbbb.do,articleView_c5h8j2.do,articleView_xxx.do,這樣的請求都會由getArticle()這個方法來應付,是不是很有意思?

Spring 3.0增加了一個@ PathVariable注解來支持可變的請求路徑,將上面的代碼在3.0版中再變通下:

  1. @Controller 
  2. public class ArticleController{  
  3.    
  4.   @RequestMapping("/articleView/${id}")   //可以接受articleView/aaa.do,articleView/xxx.do...  
  5.    public String getArticle(@PathVariable String id, HttpServletRequest request){  
  6.     request.setAttribute("article", service.find(Article.class, id));  
  7.     return "articleView";  
  8.    }  
  9.    

再變得復雜些:

  1. @Controller 
  2. public class ArticleController{  
  3.    
  4.   @RequestMapping("/articleList/${pageSize}/channel/*/category/${id}")     
  5.    
  6.    public String getArticles((@PathVariable Integer pageSize, @PathVariable int id, HttpServletRequest request){  
  7.     Integer channelId = StringUtil.getParam(request.getRequestURI(),"channel/*/");  
  8.     request.setAttribute("articles", service.findScroll(Article.class, pageSize,50,"channel=? and category=?",new Object[]{channelId,id}));  
  9.       
  10.     return "articleList";  
  11.    }  
  12.    

它已經靈活到URL地址完全可以自己隨意編制。

 

根據內容協商制的視圖解析機制:

 

2.5版是由@MVC控制器來決定視圖解析器,3.0版將變得更加靈活,似乎可以通過擴展名來轉到不同的解析器中,例如請求一個.pdf文件將是如何效果呢?3.0版都會帶來不可思議的模式。

 

HTTP方法的轉換:

 

先看前臺頁面一段Html代碼

  1. <form:form method="delete">    
  2. <p class="submit"><input type="submit" value="Delete Pet"/></p>   
  3. </form:form> 

HTTP規范中form表單只有兩種方法——POST和GET,而3.0做了一個過濾器,可以轉換這些方法至四種——GET, PUT, POST, 和 DELETE。控制器接受請求:

  1. @Controller("/deleteArticle")  
  2. public class ArticleController{  
  3.    
  4.   @RequestMapping(method = RequestMethod.DELETE)  
  5.    public String deleteArticle(@PathVariable String id, HttpServletRequest request){  
  6.     service.delete(Article.class, id);  
  7.     return "message";  
  8.    }  
  9.    

3.0版僅在MVC子集中就增加了很多新特性,如果在IoC、AOP等等其它子集所有的變革,絕對可以稱得上Srping創始人所述的里程碑版本。3.0版使用的注解列表如下:

  1. • @Autowired 
  2. • @Component 
  3. • @Controller 
  4. • @InitBinder 
  5. • @ManagedAttribute 
  6. • @ManagedOperation 
  7. • @ManagedOperationParameters 
  8. • @ManagedOperationParameter 
  9. • @ManagedResource 
  10. • @PathVariable 
  11. • @PostConstruct 
  12. • @PreDestroy 
  13. • @Repository 
  14. • @RequestMapping 
  15. • @Required 
  16. • @Resource 
  17. • @Service 
  18. • @Transactional 

目前Spring 3版本已經到了M2,應該是M3完成后將推出最終正式版本,我想很快會來臨,按照Spring的創始人羅德.約翰遜的預言,未來J2EE應用中Spring+Tomcat將占主導地位,是否引起爭議,筆者不敢點評,不過Oracle收購Sun后,Java社區將是如何,還無從知曉,似乎羅德.約翰遜對這宗收購案也有些緊張,因為Oracle不像Sun的第一個談判者IBM那樣有過開放技術的先例(可以回憶下IBM早期的主板總線開放掀起的兼容機潮至今波濤不熄)。目前國內對新東西消化尚慢,我到圖書城看了下,Spring 2.5的資料都很難找到。且很多企業都是抱著Struts1.x在做開發,盡管筆者這樣說會引來很多爭議,但Struts1時代的滅亡只是時間問題。Struts2雖然改進了很多,依筆者看,與Spring MVC相比仍有諸多的不足,尤其看不慣那種變態的侵入模式,看看它把HttpServletRequest、HttpSession、HttpServletResponse等servlet標準組件干成什么樣?開源時代,至少我不愿意接受那種變態的潛規則。

 

筆者早先常用Struts1.x框架,它搭配了一套自己的ActionForm,使得編程工作量增加,雖然可以變通使用自己的Pojo,但對于沒有掌握J2EE底層工具類(BeanUtil)的開發人員來說,其類型匹配是非常復雜的事。事實上Spring MVC早在1.x版本就完全使用自己的pojo來對應表單的填充,配上屬性編輯器,可以解決類型轉換問題,完全實現領域模型驅動的設計模式。由于MVC層的控制器也是Spring容器的Bean而已,因此對整個項目的控制、擴展變得非常容易。同時上文也順便點評了Struts2,可見Spring MVC在各類MVC框架的優勢所在。本身羅德.約翰遜先生是設計模式高手,一個優秀的框架給我們帶來的遠遠不只是開發效率,還有更先進的開發模式和理念...

 

筆者對Spring框架研究膚淺,待日后了解掌握更多時會常在博客中述之。

原文鏈接:http://howsun.blog.sohu.com/107477052.html

責任編輯:林師授 來源: 張紀豪的博客
相關推薦

2024-11-05 09:25:45

2024-05-07 08:31:09

SpringFlowable業務流程

2025-03-21 09:30:00

2024-05-23 08:07:05

2024-07-09 08:25:48

2024-07-01 08:18:14

2024-07-01 08:11:31

2024-07-05 10:17:08

數據流系統CPU

2024-07-11 08:24:22

2023-09-04 11:52:53

SpringMVC性能

2014-11-28 09:47:26

Python

2023-11-02 18:01:24

SpringMVC配置

2011-12-05 13:44:34

JavaSpringMVC

2011-08-16 10:41:40

安裝XcodeLion

2021-12-09 10:17:25

部署實戰Linux

2024-06-28 09:30:36

2009-06-19 11:28:45

2011-04-27 09:39:53

EclipseIntelliJ

2009-06-19 11:43:59

Spring MVC框

2025-07-14 01:55:00

組件StarterSpring
點贊
收藏

51CTO技術棧公眾號

天天综合永久入口| 国产一级aa大片毛片| 国产亚洲欧美日韩精品一区二区三区| 精品一区二区在线视频| 久久精品亚洲热| 日本精品一二三区| 三级成人在线| 一区二区三区四区激情| 成人天堂噜噜噜| 国产乡下妇女做爰视频| 91在线一区| 色综合咪咪久久| www.亚洲一区二区| 日本视频在线观看一区二区三区| 黄色日韩在线| 国产一区二区三区视频免费| aaa一级黄色片| 亚洲十八**毛片| 亚洲欧美日韩国产中文在线| 久久亚洲国产精品日日av夜夜| 国产在线视频99| 国内精品麻豆美女在线播放视频| 亚洲韩国精品一区| 亚洲不卡1区| 欧美一级免费片| 精品夜夜嗨av一区二区三区| 91av在线看| 欧美三根一起进三p| 精品免费视频| 日韩电影在线观看中文字幕| 黄色a级三级三级三级| 国产精品一区二区av影院萌芽| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美在线性爱视频 | 香蕉视频免费版| 国产黄色片在线观看| 99热精品国产| 国产高清精品一区二区| 国产麻豆91视频| 蜜臂av日日欢夜夜爽一区| 人妖精品videosex性欧美| 国产精品suv一区二区| 欧美在线看片| 美女视频黄免费的亚洲男人天堂| av地址在线观看| 国产成人免费视频网站视频社区| 亚洲国产日韩在线一区模特| 日本精品免费视频| 麻豆传媒在线完整视频| 欧美韩日一区二区三区四区| 5g国产欧美日韩视频| 国产麻豆精品一区| 国产一区不卡精品| 亚洲在线观看视频| 国产激情无套内精对白视频| 国产美女av一区二区三区| 91天堂在线视频| 国产又大又粗又硬| 国产在线播放一区三区四| 91亚洲精品视频| 99久久久国产精品无码网爆| 国产一区二区不卡在线| 成人av免费看| 天堂av手机版| 91色porny| 日韩激情久久| 日本中文字幕在线播放| 亚洲日本成人在线观看| 日韩成人三级视频| 超碰人人在线| 婷婷六月综合网| 国产裸体舞一区二区三区| 你懂得影院夜精品a| 欧美综合亚洲图片综合区| 毛片在线视频观看| av电影免费在线看| 色天使色偷偷av一区二区| 天天插天天操天天射| 在线观看欧美| 亚洲成人黄色在线观看| 亚洲不卡的av| 性欧美18xxxhd| 亚洲三级在线免费| 亚洲五码在线观看视频| jizz在线免费观看| 最近日韩中文字幕| 色就是色欧美| 久久综合久久综合亚洲| 久久99热精品| 日韩不卡视频在线| 美国av一区二区| 国产成人精品免费视频大全最热| 亚洲图片小说视频| 国产成人在线观看免费网站| 精品欧美日韩| 美女国产在线| 欧美三级免费观看| 国产探花在线看| 好吊妞视频这里有精品| 一本色道久久综合狠狠躁篇的优点 | 欧美精品久久久久久久久久丰满| 成人午夜视频免费看| 日韩欧美第二区在线观看| 黄色av网站在线| 一区二区高清在线| 久久久久久久久久伊人| 奇米777日韩| 91久久精品网| 色综合色综合色综合色综合| 亚洲3区在线| 在线观看中文字幕亚洲| 日本在线小视频| 精品一区二区三区香蕉蜜桃 | 麻豆久久久久久久久久| 国内精品视频666| 欧美日韩电影一区二区| 四虎av在线| 欧美日韩免费在线视频| 免费的av网站| 国内自拍一区| 97在线视频免费播放| 中文字幕精品无码一区二区| 国产美女久久久久| 亚洲成人第一| 欧美三区四区| 欧美一区二区三区四区久久| 国产在线综合视频| 老司机精品视频网站| 国产在线高清精品| 日本国产在线观看| 亚洲免费观看高清完整版在线| 国产成人永久免费视频| 日韩综合av| 中文字幕综合一区| 久久亚洲成人av| 久久亚洲影院| 久久精品日产第一区二区三区精品版 | bt欧美亚洲午夜电影天堂| 欧美在线激情| 亚洲一区站长工具| 亚洲免费福利视频| 好吊妞视频一区二区三区| 成人网在线播放| 色播五月综合| 欧美一级大黄| 在线观看久久久久久| 成人一级免费视频| 中文字幕精品综合| 污视频网站观看| 久久美女视频| 欧美最近摘花xxxx摘花| 无码精品视频一区二区三区 | 欧美连裤袜在线视频| 末成年女av片一区二区下载| 日韩av中文在线| 青草视频在线观看免费| 久久久www成人免费毛片麻豆| 国产免费裸体视频| 第四色中文综合网| 欧美亚洲成人精品| 国产三级视频在线播放线观看| 亚洲黄网站在线观看| 97超碰免费在线观看| 欧美日韩成人| 精品欧美一区二区三区久久久 | 久久久久国产视频| 少妇高潮一区二区三区99小说| 国产精品久线观看视频| 午夜视频在线观| 亚洲手机在线| 欧美一区二区三区在线播放| 欧美黄色网络| 久久久久久久久久久免费| 91国产精品一区| 亚洲精品国产第一综合99久久| 超碰在线人人爱| 久久久久久久久久久妇女| y111111国产精品久久婷婷| 香蕉伊大人中文在线观看| 在线亚洲男人天堂| 午夜精品在线播放| 亚洲六月丁香色婷婷综合久久| 亚洲这里只有精品| 欧美区日韩区| 欧美国产一二三区| 国产色99精品9i| 51视频国产精品一区二区| 在线免费看黄网站| 精品欧美乱码久久久久久1区2区| 日韩成人短视频| 不卡av电影在线播放| 伊人国产在线视频| 一区二区三区国产在线| 亚洲欧美日韩在线综合| 最新国产精品精品视频| 国产精品黄色av| 成人在线免费看| 精品国精品国产尤物美女| 亚洲综合图片网| 一个色综合av| 国产精品酒店视频| av一二三不卡影片| 亚洲一区二区中文字幕在线观看| 一区二区三区毛片免费| 久久久久久一区| 美国十次综合久久| 国产精品久久av| 国产精品xx| 亚洲欧美中文字幕| 亚洲精品久久久久久久久久久久久久| 亚洲综合久久久久| 国精品人伦一区二区三区蜜桃| 精品综合免费视频观看| 色欲av无码一区二区人妻| 欧美韩日精品| 在线视频精品一区| 欧美三级伦理在线| 欧美激情论坛| 人妖一区二区三区| 国产精品久久久久久亚洲影视| 色综合久久影院| 日韩一级二级三级精品视频| 中文字幕永久在线视频| 日韩欧美精品在线观看| www.天天色| 亚洲一区二区三区四区在线免费观看| 日韩成人av一区二区| 国产精品香蕉一区二区三区| 日韩av高清在线看片| 国产精品三级| 久久久久高清| 色吊丝一区二区| 精品国产乱码久久久久久郑州公司 | 国产精品久线观看视频| 成人黄色免费网址| 久久久久久久久久久电影| 特大黑人巨人吊xxxx| 成人av免费在线| 国模无码视频一区| 99久久综合色| 婷婷五月精品中文字幕| heyzo一本久久综合| 九九热精品在线播放| 日韩激情在线观看| 三级在线视频观看| 熟妇人妻av无码一区二区三区| 91免费在线视频观看| 色999日韩国产欧美一区二区| 韩国一区二区三区四区| 国产一区二区三区在线观看免费视频 | 久久久国产欧美| 日日摸夜夜添夜夜添精品视频| 中国一级大黄大黄大色毛片| 91九色精品| 欧美专区一二三| 精品久久电影| 亚洲日本无吗高清不卡| 国产精品国内免费一区二区三区| 精品一区久久久| 欧美影院视频| 91视频99| 日韩成人av在线资源| 免费成人在线观看av| 欧美一区电影| 日韩国产精品毛片| 伊人影院久久| 白嫩少妇丰满一区二区| 日本亚洲欧美天堂免费| 日本一道本久久| 日韩和欧美的一区| 精品99在线视频| 欧美日本一区| av高清在线免费观看| 久久久精品五月天| 性生活免费在线观看| 国产九九视频一区二区三区| 久久久男人的天堂| www久久精品| 日本黄色录像片| 国产亚洲一本大道中文在线| 日批在线观看视频| 国产女主播在线一区二区| 欧美激情图片小说| 中文字幕在线一区免费| 久久久久久欧美精品se一二三四 | 欧美成人手机视频| 欧美日韩中文字幕| 日本午夜小视频| 欧美中文字幕一区二区三区| 99视频在线观看免费| 日韩av在线网| caopeng在线| 欧美性受xxxx黑人猛交| 国产精品一区三区在线观看| 蜜桃视频在线观看成人| 91av精品| 男人天堂成人在线| 国产精品白丝jk黑袜喷水| av网站免费在线播放| 91在线观看一区二区| 久久av红桃一区二区禁漫| 激情久久av一区av二区av三区 | 欧洲激情一区二区| 精品国产乱码一区二区三 | 亚洲成人一级片| 亚洲小视频在线| 92国产在线视频| 欧美一级淫片播放口| 在线视频成人| 国产精品美女一区二区三区| 国产精品99久久久久久成人| 天天综合天天做天天综合| 一级欧美一级日韩| 日韩精品中文字幕在线| 99自拍视频在线观看| 国产精品久久久久久网站| 日韩成人av在线资源| 国产精品久久国产三级国电话系列| youjizz欧美| 夜夜爽www精品| 久久久久久一区二区| 欧产日产国产精品98| 亚洲天堂网中文字| 精品午夜福利视频| 91精品中文字幕一区二区三区| 精品久久久免费视频| 中文字幕视频一区二区在线有码| 麻豆视频在线观看免费网站| 国产成人在线一区| 日韩a级大片| 国产一二三在线视频| 国产精品亚洲一区二区三区妖精| 99re久久精品国产| 国产精品视频你懂的| 精产国品一区二区| 5858s免费视频成人| 精品久久久久久久无码| 美女诱惑一区二区| 国产精品久久久久无码av色戒| 国产精品毛片无遮挡高清| 日韩免费av网站| 亚洲欧美另类国产| 免费成人直播| 欧美日韩在线精品| 亚洲色图插插| 亚洲欧美天堂在线| 亚洲视频一区二区在线| 91久久久久久久久久久久| 日韩一区二区三区国产| 欧美激情啪啪| 只有这里有精品| 国产一区二区h| 久久久久成人精品无码| 精品国产成人系列| 91大神xh98hx在线播放| 国产精品永久免费视频| 色综合狠狠操| 欧美精品色视频| 亚洲在线免费播放| 中国a一片一级一片| 自拍偷拍亚洲区| japansex久久高清精品| 99久热在线精品视频| 成人国产亚洲欧美成人综合网| 亚洲精品一区二区三区在线播放| 欧美日韩国产影院| 视频一区二区三区国产| 日本三级韩国三级久久| 欧美hd在线| 超碰在线公开97| 亚洲色图欧洲色图婷婷| 性生活免费网站| 8x海外华人永久免费日韩内陆视频| 日韩免费成人| 国产老熟妇精品观看| 欧美激情一区二区三区全黄| 一区二区国产欧美| 欧美精品成人在线| 国产va免费精品观看精品视频| 99色这里只有精品| 久久久亚洲午夜电影| 国产又粗又大又黄| 69av在线视频| 欧美人成在线观看ccc36| 毛葺葺老太做受视频| 亚洲男人天堂av| 无码国产精品一区二区免费16| 久久久久久久久国产| 亚州av一区| 日韩av自拍偷拍| 五月天国产精品| 日本电影在线观看网站| 国产精品丝袜久久久久久不卡| 国产成人一区| 人妻换人妻仑乱| 色综合色综合色综合色综合色综合| 深夜福利视频一区| 成人免费高清完整版在线观看| 99re久久最新地址获取| 国产伦精品一区二区三区精品|