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

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

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

    Asktalk

    天行健,君子以自強不息!
    posts - 21, comments - 79, trackbacks - 0, articles - 2
      BlogJava :: 首頁 ::  :: 聯(lián)系 :: 聚合  :: 管理

    流行FrameWork整合之Spring--—— IoC反向控制篇

    Posted on 2006-02-14 15:48 Asktalk 閱讀(2448) 評論(2)  編輯  收藏 所屬分類: Spring2

     


    J2EE開發(fā)正在變得越來越復雜,J2EE已經發(fā)展為一個API、復雜化的編程和配置的復雜網絡。這幾年,新的框架和方法不斷涌現從一定程度上緩解了開發(fā)的復雜和降低了開發(fā)的成本,但是要把這些Framework整合起來,如Struts,JSF,Webwork,Hibernate,JDO等等,并不是那么容易,就目前來看這個職位只有Spring能夠勝任,采用的就是IoC技術。那么反向控制到底什么?

    其實很簡單。IOC(Inversion of control)和OOP中DIP(dependence Inversion )和Martin Fowler 稱Dependency Injection(http://martinfowler.com/articles/injection.html)三者一樣。又稱好萊塢原則。目的要減少耦合。

    反向控制(IoC)/依賴注入,這是Spring的核心,也是精髓。所謂IoC,對于spring框架來說,就是由Spring來負責控制對象的生命周期和對象間的關系。簡單來說,

    傳統(tǒng)的程序開發(fā),在一個對象中,如果要使用另外的對象,就必須得到它(自己new一個,或者從JNDI中查詢一個),使用完之后還要將對象銷毀(比如Connection等),對象始終會和其他的接口或類藕合起來。

     

     那么IoC是如何做的呢?有點像通過婚介找女朋友,在我和女朋友之間引入了一個第三者:婚姻介紹所。婚介管理了很多男男女女的資料,我可以向婚介提出一個列表,告訴它我想找個什么樣的女朋友,比如長得像林心如,身材像林熙雷,唱歌像周杰倫,忽悠的像趙本山,技術像羅納爾多之類的,然后婚介(Spring)就會按照我們的要求,提供一個MM,我們只需要去和她談戀愛、結婚。如果婚介給我們的人選不符合要求,我們就會拋出異常。整個過程不再由我自己控制,而是有婚介(Spring)這樣一個類似容器的機構來控制。所有的類都會在spring容器中登記,告訴spring你的屬性和方法,你需要什么女朋友,然后spring會在系統(tǒng)運行到適當的時候,把你要的女朋友主動給你,同時也把你交給其他需要你的資源。所有的類的創(chuàng)建、銷毀都由spring來控制,也就是說控制對象生存周期的不再是引用它的對象,而是spring。對于某個具體的對象而言,以前是它控制其他對象,現在是所有對象都被spring控制,所以這叫控制反轉。

     

     IoC的一個重點是在系統(tǒng)運行中,動態(tài)的向某個對象提供它所需要的其他對象。這一點是通過DI(Dependency Injection,依賴注入)來實現的。少耦合使用配置文件,起初TXT,  到Window's ini文件,注冊表,到近期xml文件。怎么讀配置文件?現在一般都有專門的類(configuration,或context)。然后用工廠模式(Factory類),通過Java 反射(reflection)實例化具體類(instance)。主程序商業(yè)邏輯使用抽象類(Abstact)或接口。

     

    Java 1.3之后一個重要特征是反射(reflection),它允許程序在運行的時候動態(tài)的生成對象、執(zhí)行對象的方法、改變對象的屬性,spring就是通過反射來實現注入的。關于反射的相關資料請查閱java doc。

     

    總之,降低耦合性是java發(fā)展的方向,現在除了IoC,我還沒有找到更合適的解耦方法,歡迎大家批評,這僅是個人看法!

     


    評論

    # re: 流行FrameWork整合之Spring­­—— IoC反向控制篇  回復  更多評論   

    2006-06-14 21:03 by 綠色使者、綠色心情
    還可以采用消息隊列的,耦合性更加低

    # re: 流行FrameWork整合之Spring­­—— IoC反向控制篇  回復  更多評論   

    2006-12-08 10:14 by 過客[匿名]
    不錯

    只有注冊用戶登錄后才能發(fā)表評論。


    網站導航:
     
    主站蜘蛛池模板: 99视频在线观看免费| 亚洲国产成人久久一区久久| av网站免费线看| 亚洲熟妇av午夜无码不卡| 亚洲欧洲日产国产综合网| 亚洲毛片网址在线观看中文字幕 | 国产啪精品视频网免费| 久久成人18免费网站| 亚洲AV成人精品一区二区三区| 久久亚洲sm情趣捆绑调教| 亚洲日韩精品一区二区三区无码| 国产精品va无码免费麻豆| 成人性生免费视频| 69式国产真人免费视频| 永久看日本大片免费35分钟| 国产亚洲免费的视频看| 成人妇女免费播放久久久| 一级午夜a毛片免费视频| 日本高清不卡中文字幕免费| 久久精品国产亚洲AV未满十八| 亚洲AV无码一区二区三区在线| 亚洲视频在线观看免费视频| 亚洲成人免费在线| 久久久亚洲欧洲日产国码农村| 怡红院亚洲怡红院首页| 亚洲综合激情另类专区| 亚洲午夜激情视频| 国产亚洲精aa成人网站| 亚洲五月综合缴情在线观看| 国产亚洲精品精品国产亚洲综合| 亚洲男人av香蕉爽爽爽爽| 亚洲 小说区 图片区 都市| 亚洲av无码不卡私人影院| 亚洲AV无码乱码在线观看| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久久久国产免费| 13一14周岁毛片免费| 99久久免费国产香蕉麻豆| 国产香蕉九九久久精品免费| 午夜视频免费观看| 免费人成视频在线观看不卡|