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

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

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

    (翻譯)JavaEE6規范 CDI教程第五部分

    原文鏈接: http://code.google.com/p/jee6-cdi/wiki/DependencyInjectionAnIntroductoryTutorial

    本部分講述使用多個@Qualifiers來進一步區分注入類型

    在同一個注入點上使用多個@Qualifiers來進一步區分

    你可以使用多個限定注解來進一步區分你的注入目標。

    我們定義限定注解SuperFastStandardFrameRelaySwitchingFlubber來演示這個用法。那樣的話我們就有第二個傳輸器StandardFrameRelaySwitchingFlubber和SuperFast,我們要注入的傳輸器不僅有StandardFrameRelaySwitchingFlubber,還有SuperFast。

    首先我們來定義限定注解,如下:

    // 定義新的SuperFast限定注解 package org.cdi.advocacy;  
    ...
    @Qualifier
    @Retention(RUNTIME)
    @Target({TYPE, METHOD, FIELD, PARAMETER})
    public @interface SuperFast {
    }
    // 定義另一個新的StandardFrameRelaySwitchingFlubber限定注解 
    package org.cdi.advocacy;
    ...
    @Qualifier @Retention(RUNTIME)
    @Target({TYPE, METHOD, FIELD, PARAMETER})
    public @interface StandardFrameRelaySwitchingFlubber {
    }

    OK,下面的代碼是給SuperFastAtmTransport同時使用@SuperFast@StandardFrameRelaySwitchingFlubber限定注解。

    // SuperFastAtmTransport使用兩個限定注解 
    package org.cdi.advocacy;

    @SuperFast @StandardFrameRelaySwitchingFlubber
    public class SuperFastAtmTransport implements ATMTransport {
    public void communicateWithBank(byte[] datapacket) {
    System.out.println("communicating with bank via the Super Fast transport " );
    }
    }

    Ok,我們也給StandardAtmTransport加上StandardFrameRelaySwitchingFlubber限定注解。

    // StandardAtmTransport使用一個限定注解 
    package org.cdi.advocacy;

    @StandardFrameRelaySwitchingFlubber
    @Default
    public class StandardAtmTransport implements ATMTransport {
    public void communicateWithBank(byte[] datapacket) {
    System.out.println("communicating with bank via Standard transport");
    }
    }

    接下來,我希望我的自動柜員機使用SuperFast傳輸并帶有StandardFrameRelaySwitchingFlubber,我必須在注入點同時使用它們,如下:

    // AutomatedTellerMachineImpl更改為使用兩個限定注解 
    public class AutomatedTellerMachineImpl implements AutomatedTellerMachine {
    @Inject @SuperFast @StandardFrameRelaySwitchingFlubber
    private ATMTransport transport;
    ... deposit called
    communicating with bank via the Super Fast transport

    練習:創建一個具有@SuperFast, @StandardFrameRelaySwitchingFlubber 和 @Alternative的傳輸器。然后使用beans.xml激活SuperFast, StandardFrameRelaySwitchingFlubber, Alternative支持。通過CDI Group郵件列表發給我你的解決方案。第一發送的將會張貼在CDI墻壁上。

    閱讀者練習:更改注入點限定,只使用StandardAtmTransport。通過CDI Group郵件列表發給我你的解決方案。第一發送的將會張貼在CDI:墻壁上。

    待續..

    2011-07-12

    posted on 2011-07-12 10:38 kuuyee 閱讀(1864) 評論(0)  編輯  收藏 所屬分類: CDIJEE

    導航

    <2011年7月>
    262728293012
    3456789
    10111213141516
    17181920212223
    24252627282930
    31123456

    統計

    隨筆分類(139)

    Linux內核

    搜索

    •  

    積分與排名

    • 積分 - 319344
    • 排名 - 177

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲国产精品无码久久久不卡| 亚洲国产韩国一区二区| 亚洲av成人一区二区三区在线播放| 污视频网站在线免费看| 国产成人免费a在线资源| 亚洲AV日韩AV高潮无码专区| 中文字幕无码免费久久| 成人免费视频试看120秒| 亚洲国产精品一区第二页| 人妻在线日韩免费视频| 亚洲中文字幕无码日韩| 两个人看的www免费视频中文| 一二三四免费观看在线电影| 亚洲日本VA中文字幕久久道具| 男女午夜24式免费视频| 亚洲bt加勒比一区二区| 韩国免费一级成人毛片| 亚洲精品欧美综合四区| 国产精品亚洲综合专区片高清久久久| 人妻在线日韩免费视频| 亚洲一区二区三区久久久久| 免费真实播放国产乱子伦| 花蝴蝶免费视频在线观看高清版 | 亚洲中文字幕成人在线| 亚洲精品精华液一区二区| 免费欧洲美女牲交视频| 99久久成人国产精品免费| 亚洲精品美女久久久久9999| 日韩av无码成人无码免费| 亚洲国产成人无码av在线播放| 女人张开腿给人桶免费视频| 国产99在线|亚洲| 亚洲AV永久无码精品一区二区国产| 两个人看的www高清免费视频| 亚洲另类古典武侠| 狠狠色婷婷狠狠狠亚洲综合| 在线免费中文字幕| 麻豆亚洲AV永久无码精品久久| 毛片a级毛片免费播放100| 久久免费视频一区| 国产av无码专区亚洲av桃花庵|