<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Gay Bird

    登高者必自卑,行遠者必自邇,在這個世界上,重要的不是你正站在那里,而是你正朝什么方向移動......

    編程經驗系列-Java學習雜談(十)--Spring

     繼續與大家分享J2ee部分的學習經驗。今天的主題是目前很流行也很好的一個開源框架-Spring.

        引用《Spring2.0技術手冊》上的一段話:

        Spring的核心是個輕量級容器,它是實現IoC容器和非侵入性的框架,并提供AOP概念的實現方式;提供對持久層、事務的支持;提供MVC       Web框架的實現,并對于一些常用的企業服務API提供一致的模型封裝,是一個全方位的應用程序框架,除此之外,對于現存的各種框架,Spring也提供了與它們相整合的方案。

        接下來筆者先談談自己的一些理解吧,Spring框架的發起者之前一本很著名的書名字大概是《J2ee       Development       without       EJB》,他提倡用輕量級的組件代替重量級的EJB.筆者還沒有看完那本著作,只閱讀了部分章節。其中有一點分析覺得是很有道理的:

        EJB里在服務器端有Web       Container和EJB       Container,從前的觀點是各層之間應該在物理上隔離,Web       Container處理視圖功能、在EJB       Container中處理業務邏輯功能、然后也是EBJ       Container控制數據庫持久化。這樣的層次是很清晰,但是一個很嚴重的問題是Web       Container和EJB       Container畢竟是兩個不同的容器,它們之間要通信就得用的是RMI機制和JNDI服務,同樣都在服務端,卻物理上隔離,而且每次業務請求都要遠程調用,有沒有必要呢?看來并非隔離都是好的。

        再看看輕量級和重量級的區別,筆者看過很多種說法,覺得最有道理的是輕量級代表是POJO       +       IoC,重量級的代表是Container       +       Factory.(EJB2.0是典型的重量級組件的技術)我們盡量使用輕量級的Pojo很好理解,意義就在于兼容性和可適應性,移植不需要改變原來的代碼。而Ioc與Factory比起來,Ioc的優點是更大的靈活性,通過配置可以控制很多注入的細節,而Factory模式,行為是相對比較封閉固定的,生產一個對象就必須接受它全部的特點,不管是否需要。其實輕量級和重量級都是相對的概念,使用資源更少、運行負載更小的自然就算輕量。

        話題扯遠了,因為Spring框架帶來了太多可以探討的地方。比如它的非侵入性:指的是它提供的框架實現可以讓程序員編程卻感覺不到框架的存在,這樣所寫的代碼并沒有和框架綁定在一起,可以隨時抽離出來,這也是Spring設計的目標。Spring是唯一可以做到真正的針對接口編程,處處都是接口,不依賴綁定任何實現類。同時,Spring還設計了自己的事務管理、對象管理和Model2       的MVC框架,還封裝了其他J2ee的服務在里面,在實現上基本都在使用依賴注入和AOP的思想。由此我們大概可以看到Spring是一個什么概念上的框架,代表了很多優秀思想,值得深入學習。筆者強調,學習并不是框架,而是框架代表的思想,就像我們當初學Struts一樣……

        1.Spring       MVC

        關于IoC和AOP筆者在上篇已經稍微解釋過了,這里先通過Spring的MVC框架來給大家探討一下Spring的特點吧。(畢竟大部分人已經很熟悉Struts了,對比一下吧)

        眾所周知MVC的核心是控制器。類似Struts中的ActionServlet,Spring里面前端控制器叫做DispatcherServlet.里面充當Action的組件叫做Controller,返回的視圖層對象叫做ModelAndView,提交和返回都可能要經過過濾的組件叫做 Interceptor.

        讓我們看看一個從請求到返回的流程吧:

        (1)   前臺Jsp或Html通過點擊submit,將數據裝入了request域

        (2)   請求被Interceptor攔截下來,執行preHandler()方法出前置判斷

        (3)   請求到達DispathcerServlet

        (4)   DispathcerServlet通過Handler       Mapping來決定每個reuqest應該轉發給哪個后端控制器Controlle

    posted on 2008-09-12 17:26 Sky Yi 閱讀(179) 評論(0)  編輯  收藏 所屬分類: 編程經驗系列-Java學習雜談(轉)

    主站蜘蛛池模板: 亚洲国产高清人在线| 韩国二级毛片免费播放| 秋霞人成在线观看免费视频| 国产精品成人69XXX免费视频| 黄色一级毛片免费看| 日本免费精品一区二区三区| 狼色精品人妻在线视频免费| 一级毛片大全免费播放下载| 深夜福利在线免费观看| 思思久久99热免费精品6| 国产大片免费天天看| 两个人看的www免费视频中文| 你懂的网址免费国产| 老司机69精品成免费视频| 国产精品免费看久久久| 久久精品毛片免费观看| 99国产精品永久免费视频| 黄页网站免费观看| 狼友av永久网站免费观看| 日本特黄a级高清免费大片| 国产人成免费视频| 亚洲精品国产高清不卡在线| 亚洲欧洲日产国码无码久久99| 国产亚洲3p无码一区二区| 亚洲午夜免费视频| 亚洲伊人久久大香线蕉在观| 亚洲国产视频久久| 亚洲AV成人精品日韩一区| 永久免费无码网站在线观看个| 两个人的视频www免费| 亚欧免费一级毛片| 成年人免费观看视频网站| 免费国内精品久久久久影院| 中文字幕亚洲一区二区三区| 亚洲情a成黄在线观看动漫尤物| 亚洲中文字幕无码av在线| 老子影院午夜伦不卡亚洲| 成全视成人免费观看在线看| **aaaaa毛片免费| 国产成人免费a在线资源| 亚洲国产综合无码一区|