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

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

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

    云自無心水自閑

    天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
    posts - 288, comments - 524, trackbacks - 0, articles - 6
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Tapestry IoC容器從歷史上來說,是從從HiveMind繼承發展而來,但是HiveMind和目前大紅大紫的Spring都不能滿足Tapestry的一些特定的需求,所以全新開發了一套IoC的容器。
    其核心思想就是使用Java代碼自身來解決依賴注入而不是由Xml之類的配置文件來完成,這和Guice的思想是非常相似的,Lewis也承認從Guice那里借鑒了不少。
    另外需要說明一下的是,Tapesty還從中國的一個非常古老但又充滿哲理的游戲--圍棋中借鑒了一些術語和思想。大意是圍棋中經常要把棋子走的輕盈(Lightness),讓每個棋子都能盡量地高效。編程也一樣要輕量(Lightness)。


    IoC容器中使用的一些概念,充分理解這些概念會對Tapesty IoC容器有一個總體上的感性認識。

    Tapestry IoC中的最基本的組成單元是服務(Service)。服務一般由一個接口和一個接口的實現組成。每個服務都有一個全局唯一的標識(ID)。
    數個或者多個服務組成一個模塊。模塊中會包括一個模塊定義類,在這個類里面有一系列的靜態或者成員方法
    ,用于定義服務、裝飾服務、或者添加配置項。
    這個類中的方法定義服務,并同時負責實例化服務的實現類。
    這些方法被稱為:服務創建 (build) 方法。

    注冊表(Registry) 是外部世界與服務和模塊交互的媒介。通過注冊表,使用服務的ID或者服務接口,才有可能獲得一個服務(服務ID是大小寫不敏感的,這是Tapestry的一個隨處可見的特性)。

    服務可以由服務裝飾方法進行裝飾(decorate)。這些裝飾方法會創建攔截器(interceptor)來包裝核心的服務實現,
    在外面添加諸如日志、權限檢查、數據庫事務之類的行為。攔截器需要實現同樣服務接口,這實際上就是一個裝飾模式的應用。

    下面是關于服務的一個很重要的概念:配置(Configuration)。
    在Tapestry的AppModule.java中最常見的是兩類方法,一類是前面剛剛介紹過的服務創建方法,一般是以build開頭的。另一大類就是添加配置的方法了,一般是以contribute開頭。
    服務可以根據配置項靈活配置,配置的數據結構可以是Map、集合或者是有序列表。
    服務自己定義允許什么類型的配置項可以被添加到配置中,Tapestry中把添加配置項的動作稱之為貢獻(Contribute)。
    配置可以由一個或者多個模塊分別貢獻而成。通過調用服務貢獻方法(Service Contributor Methods)來把配置對象添加到配置中。

    服務的狀態演變:
    服務只有在需要的時候才會被實例化。在這里,“需要”的意思是服務的某個方法被調用了。開始的時候,從外界來看,服務只是一個實現了服務接口的代理。
    當這個代理的方法第一次被實際調用的時候,完整的服務(也就是服務的實現類)才會真正地被構造。
    并且這個構造過程是線程安全的。

    實例化服務、進行依賴注入、裝飾服務這就是服務實現(Realization)的所有組成部分。通過這三步一個服務才從虛擬狀態(只是一個代理)轉換成真實狀態(完全的實例化,等待被使用了)。

    服務的范圍:服務的缺省范圍是單例的,另外也可以與當前線程綁定.

    依賴項是服務實現類所需要的其他服務。依賴項可以由服務創建方法通過構造函數、方法參數注入進來。
    注入點可以是類成員屬性、方法參數、或者構造函數參數。通常使用注解來指定注入的類型。




    評論

    # re: Tapestry最新版5.1.0.5教程(六):核心利器-IoC容器介紹  回復  更多評論   

    2009-09-13 12:23 by 99書城
    山東金斯頓說三道四
    主站蜘蛛池模板: 成人a视频片在线观看免费| 激情小说亚洲图片| 国产午夜成人免费看片无遮挡 | 精品在线观看免费| 麻豆精品国产免费观看| 国产亚洲视频在线播放| 一级毛片免费在线观看网站| 免费在线观看的黄色网址| 污污视频免费观看网站| 五月婷婷综合免费| 一本色道久久综合亚洲精品高清| 欧洲美女大片免费播放器视频| vvvv99日韩精品亚洲| 久久www免费人成精品香蕉| 嫩草影院在线免费观看| 亚洲欧美日本韩国| 免费人成在线观看视频播放| 一区二区三区免费精品视频| 国产亚洲3p无码一区二区| 国产精品亚洲专区无码WEB| 亚洲?V无码成人精品区日韩| 精品一区二区三区免费观看| 亚洲va中文字幕无码久久| 一级做a爰片久久毛片免费看 | 亚洲欧洲免费视频| 亚洲国产精品成人久久久| 日韩高清在线高清免费| 中文字幕免费在线看| 亚洲阿v天堂在线2017免费| 亚洲最大的成人网| 精品无码AV无码免费专区| 亚洲日本va在线视频观看| 最近2019年免费中文字幕高清| 亚洲综合激情五月色一区| 亚洲精品无码久久久久AV麻豆| 久久久久久影院久久久久免费精品国产小说 | 亚洲国产午夜精品理论片| 97久久免费视频| 亚洲精品国产第一综合99久久| 成人毛片免费网站| 亚洲熟妇AV乱码在线观看|