精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

精品国产成人系列| 中文字幕日本不卡| 欧美影院在线播放| 极品久久久久久久| 国产视频一区二区在线播放| 亚洲曰韩产成在线| 久久久水蜜桃| 中文字幕欧美在线观看| 午夜精品久久| 亚洲欧美第一页| 九九九九九九九九| 色网在线免费观看| 国产精品久久久久三级| 精品乱码一区二区三区| 在线观看免费视频一区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 男人的天堂成人在线| 日韩在线观看免费高清| 91丝袜在线观看| 日韩欧国产精品一区综合无码| 亚洲二区视频在线| 亚洲最大色综合成人av| 手机av免费在线观看| 久久成人羞羞网站| 欧美在线国产精品| 久久99久久98精品免观看软件| 国产欧美日韩在线一区二区| 精品国产一区二区三区忘忧草 | 日韩欧美视频在线| 91av在线免费播放| 成人在线高清免费| 中文字幕一区二区三区四区| 久久99精品久久久久久水蜜桃| 一区二区三区精| 美女被久久久| 午夜精品久久久久久久久久久久| 久久久久久久久久97| 亚洲激情77| 亚洲成人精品视频| 永久看看免费大片| 亚洲资源在线| 欧洲日韩一区二区三区| 97av视频在线观看| 成人免费网站观看| 亚洲在线成人精品| www.男人天堂网| 好了av在线| 中文字幕一区二区三区在线不卡 | 亚洲免费看黄网站| 在线不卡视频一区二区| av资源种子在线观看| 久久久午夜精品| 精品在线视频一区二区| 免费看日韩av| 成人免费视频网站在线观看| av一区和二区| www.麻豆av| 国产精品资源网| 99精品99久久久久久宅男| av男人天堂av| 国产精品一区专区| 亚洲free性xxxx护士hd| 国产日韩在线观看一区| 国产一区二区三区视频在线播放| 成人久久一区二区三区| 国产又粗又猛又黄| 精品一区二区在线视频| 成人写真福利网| 国产日产亚洲系列最新| 国产成人亚洲综合a∨猫咪 | 亚洲福利天堂| 亚洲人高潮女人毛茸茸| 久久婷婷五月综合| 成人一级毛片| 麻豆国产va免费精品高清在线| 天堂网avav| 国内综合精品午夜久久资源| 久久久久女教师免费一区| 国产乡下妇女做爰| 久久成人一区| 国产一区二区丝袜高跟鞋图片| 国产理论片在线观看| 懂色av一区二区在线播放| 国产精品一区二区免费看| 青青草娱乐在线| 欧美激情一区在线观看| 综合网五月天| 超碰97免费在线| 色婷婷av一区| www.五月天色| 国产精品一线| 在线日韩精品视频| 欧美精品乱码视频一二专区| 一本色道久久精品| 国产精品丝袜久久久久久高清| 国产视频一区二区三区四区五区| 成人一区二区视频| 天天综合狠狠精品| 91黄页在线观看| 在线看国产一区| 农村末发育av片一区二区| 欧美a大片欧美片| 久久精品中文字幕一区| 亚洲 欧美 日韩 综合| 久久国产精品露脸对白| 国产日韩久久| 日本黄色片在线观看| 亚洲妇熟xx妇色黄| 日韩欧美国产片| 国产精品午夜av| 精品国产一区久久久| 国产毛片aaa| 国产酒店精品激情| 亚洲春色在线视频| 免费看男女www网站入口在线| 欧美日韩的一区二区| 99精品一区二区三区无码吞精| 郴州新闻综合频道在线直播| 国语自产精品视频在线看一大j8| 亚洲精品91天天久久人人| 成人精品一区二区三区中文字幕| 亚洲精品久久区二区三区蜜桃臀 | 亚洲AV无码一区二区三区性 | 成人在线高清免费| 欧美一激情一区二区三区| 人妻少妇无码精品视频区| 国语精品一区| 96国产粉嫩美女| 成年人在线视频免费观看| 午夜电影一区二区三区| xxxx国产视频| 天天色天天射综合网| 国产成人一区二| 午夜一区在线观看| 亚洲一区二区欧美| 午夜免费一级片| 超碰成人久久| 国产精品高潮呻吟久久av野狼| 亚洲三级黄色片| 亚洲国产精品久久久久秋霞影院| gai在线观看免费高清| 欧美人一级淫片a免费播放| av在线最新| 日韩视频一区二区三区| 四虎地址8848| 麻豆精品视频在线观看视频| 欧美不卡三区| 丝袜老师在线| 欧美精品一区二区久久久| 中文字幕亚洲欧美日韩| 激情五月播播久久久精品| 亚洲欧美日韩在线综合| 台湾成人免费视频| 中文字幕国产精品| 糖心vlog精品一区二区| 国产欧美日韩激情| 一区二区三区网址| 日韩中文欧美| 国产日产久久高清欧美一区| 最新97超碰在线| 欧美性受xxxx| 日本美女xxx| 奇米综合一区二区三区精品视频| 日韩欧美精品一区二区| 久久av影院| www.国产一区| 精品久久在线观看| 亚洲综合另类小说| 国产精品久久久久久亚洲色| 最新成人av网站| 久久久一本精品99久久精品66| 在线高清av| 一区二区三区www| 中文字幕日韩三级| 亚洲欧洲日韩在线| 在线观看欧美一区二区| 亚洲伦理精品| 日本一区二区高清视频| 青草综合视频| 九九久久国产精品| 天堂在线视频网站| 欧美性大战久久久| 在线看的片片片免费| 北条麻妃一区二区三区| 男人天堂999| 精品免费视频| 51国偷自产一区二区三区| 久久亚洲导航| 亚洲欧洲成视频免费观看| 亚洲一卡二卡在线| 亚洲综合在线五月| 波多野结衣片子| 经典一区二区三区| 国产精品999视频| 成人三级视频| 国产精品一区二区三区在线观| 中文字幕 在线观看| 日韩中文字幕在线精品| 成人久久久精品国产乱码一区二区| 欧美日韩久久久久| 国产又粗又长又黄的视频| 国产成人精品一区二区三区四区| 欧美在线观看成人| 天天影视天天精品| 久久久99国产精品免费| 亚洲日本免费电影| 欧洲成人免费aa| 在线黄色网页| 亚洲欧美三级在线| 亚洲av永久纯肉无码精品动漫| 欧美性猛交xxxx偷拍洗澡| 欧美做爰爽爽爽爽爽爽| 久久婷婷久久一区二区三区| 99热这里只有精品2| 久久夜色精品| 久久成人福利视频| 久久亚洲在线| 狠狠色综合色区| 玖玖玖视频精品| 国产成人综合精品| 成人黄色动漫| 欧美老女人性生活| 91激情在线| 国产视频精品久久久| 亚洲爱爱综合网| 精品视频一区三区九区| 欧美一级片免费在线观看| 亚洲一区影音先锋| 亚洲欧美卡通动漫| 久久你懂得1024| 国产 xxxx| 国产大陆精品国产| 天天色天天综合网| 蜜臀av性久久久久蜜臀aⅴ流畅| a在线视频观看| 国模一区二区三区| 色撸撸在线观看| 97人人精品| 人禽交欧美网站免费| 欧美国产极品| 国产日本一区二区三区| 2023国产精华国产精品| 亚洲一区国产精品| 亚洲一区av| 成人xxxx视频| 亚洲欧洲日韩精品在线| 国产精品爽黄69天堂a| 台湾成人免费视频| 国产精品久久久久久五月尺| 视频一区在线免费看| 日韩美女视频免费看| 午夜影视一区二区三区| 68精品久久久久久欧美| 精品三级久久| 欧美一区二三区| 中文字幕这里只有精品| 国产不卡av在线| 午夜精品成人av| 国产精品va在线播放| 成人日韩精品| 国产有码在线一区二区视频| 视频欧美精品| 亚洲最大av网| 中文字幕视频精品一区二区三区| 91中文字精品一区二区| 成人性生交大片免费看96| 国产精品亚洲综合| 综合国产视频| 亚洲va韩国va欧美va精四季| 久久国产电影| 喜爱夜蒲2在线| 欧美啪啪一区| av免费观看大全| 另类av一区二区| 亚洲黄色小视频在线观看| 麻豆精品久久精品色综合| 国产欧美激情视频| 国产91丝袜在线播放0| 大地资源二中文在线影视观看 | 秋霞成人影院| 久久99视频精品| 性欧美18~19sex高清播放| 日韩免费av在线| 少妇高潮一区二区三区99| 国产91免费视频| 三级精品视频| 亚洲一区二区三区在线观看视频| 欧美在线高清| 欧美 日本 亚洲| 久久精品久久久精品美女| 91亚洲一区二区| 91偷拍与自偷拍精品| 你懂得视频在线观看| 尤物av一区二区| 中文字幕第四页| 欧美日韩成人在线一区| 囯产精品一品二区三区| 亚洲天堂av高清| 污视频网站免费在线观看| 国产91精品不卡视频| 日韩免费在线电影| 国产午夜精品一区| 日韩激情在线| 欧美精品99久久| 国产中文一区二区三区| 亚洲人人夜夜澡人人爽| 亚洲天堂福利av| 亚洲免费黄色网址| 欧美一区2区视频在线观看| 欧美日韩国产中文字幕在线| 久久久国产精品亚洲一区| 日本在线高清| 2014国产精品| 日本一区二区在线看| 黄色成人在线看| 国产一区欧美一区| 91激情视频在线观看| 亚洲国产另类精品专区| 国产精品久久久久久久免费| 亚洲美女黄色片| 国产蜜臀av在线播放| 成人av在线亚洲| 精品一区电影| 37pao成人国产永久免费视频| 国产黑丝在线一区二区三区| 美国一级黄色录像| 欧美日韩国产精品专区| 精品国产av 无码一区二区三区| 亚洲欧洲美洲在线综合| 欧美男男tv网站在线播放| 99视频网站| 午夜欧美精品| 日本亚洲一区二区三区| 成人欧美一区二区三区黑人麻豆 | 日韩国产在线观看| 日本黄色网址大全| 欧美日韩国产专区| 天堂中文在线资| 久久免费视频网站| 国产精品流白浆在线观看| 毛片在线视频观看| 久久国产精品色婷婷| 三级黄色免费观看| 欧美日韩精品免费| av中文字幕一区二区三区| 国产精品久久久久秋霞鲁丝| 中文字幕精品影院| 国产激情在线观看视频| 久久青草国产手机看片福利盒子| 日韩一区二区视频在线| 亚洲人高潮女人毛茸茸| 九九热线视频只有这里最精品| 欧美国产二区| 噜噜噜在线观看免费视频日韩| 91精彩刺激对白露脸偷拍| 在线亚洲+欧美+日本专区| 国产高清av在线| 国产自产女人91一区在线观看| 97精品中文字幕| 青青草精品在线| 亚洲免费观看高清在线观看| 亚洲黄色在线播放| 午夜免费在线观看精品视频| 日韩三级毛片| 欧洲熟妇精品视频| 国产精品久久久久久一区二区三区 | 国产鲁鲁视频在线观看免费| 日韩av电影在线网| 精品国产a一区二区三区v免费| 欧洲熟妇精品视频| 国产亚洲精品福利| 在线免费一级片| 日韩午夜在线视频| 日韩中文一区二区| 日本黄色片一级片| 久久久综合激的五月天| 亚洲天堂男人av| 久久亚洲精品一区二区| 久久丁香四色| 免费在线a视频| 久久天天做天天爱综合色| 亚洲图片欧美在线| 欧美成人免费全部| 欧美人体一区二区三区| 亚洲欧洲一二三| 精品亚洲porn| 在线观看免费国产视频| 亚洲欧美三级伦理| 欧美激情精品| 极品粉嫩国产18尤物| 国产欧美中文在线| 国产精品嫩草影院桃色| 2019最新中文字幕| 成人精品中文字幕| youjizz.com国产| 欧洲中文字幕精品| 成年人黄色大片在线| 日韩一区二区电影在线观看| 老牛国产精品一区的观看方式| 波多野结衣亚洲一区二区|