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

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

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

    閑人野居
    好好學(xué)習(xí),天天向上
    posts - 57,  comments - 137,  trackbacks - 0
    在spring 的以前版本中,只是支持singleton,prototype兩種類型,
    在2.0中作了很大的改進,增加了RequestScope,和SessionScope兩種范圍。當(dāng)然也支持自定義Scope
    下面簡單介紹一下,spring2.0是如何支持自定義Scope的。
    Scope接口,需要實現(xiàn)的接口,主要的方法:
    • Object get(String name, ObjectFactory objectFactory)
    • Object remove(String name)
    • void registerDestructionCallback(String name, Runnable callback)
    get 和remove這是最常用的方法,registerDestructionCallback用于回收對象時,可以異步調(diào)用其它操作。
    下面簡單定義一個Scope對象:
    ?
    Scope scope = new Scope() {
    ??? private int index;
    ??? private List objects = new LinkedList(); {
    ??? ??? objects.add(new TestBean());
    ??? ??? objects.add(new TestBean());
    ??? }
    ??? public String getConversationId() {
    ??? ??? return null;
    ??? }
    ??? public Object get(String name, ObjectFactory objectFactory) {
    ??? ??? if (index >= objects.size()) {
    ??? ??? ??? index = 0;
    ??? ??? }
    ??? ??? return objects.get(index++);
    ??? }
    ??? public Object remove(String name) {
    ??? ??? throw new UnsupportedOperationException();
    ??? }
    ??? public void registerDestructionCallback(String name, Runnable callback) {
    ??? }
    };??? ?

    如何使用讓此scope生效,有兩種方法:
    第一編程實現(xiàn):
    ConfigurableBeanFactory 定義了關(guān)于Scope的一些方法:
    void registerScope(String scopeName, Scope scope);
    String[] getRegisteredScopeNames();
    Scope getRegisteredScope(String scopeName);
    可以使用registerScope方法來注冊相應(yīng)的scope
    ?
    applicationContext.getBeanFactory().registerScope("myScope", scope);??? ?

    另外一種實現(xiàn) xml 配置(建議使用)
    ? 通過CustomScopeConfigurer 來注冊相應(yīng)的Scope,由于CustomScopeConfigurer 實現(xiàn)了BeanFactoryPostProcessor,對于ApplcationContext,自動會實現(xiàn)相應(yīng)的配置
    ?
    <bean id="myScope" class="MyScope"/>
    <bean id="customerScope" class="org.springframework.beans.factory.config.CustomScopeConfigurer">
    ??? <property name="scopes">
    ??? ??? <map>
    ??? ??? ??? <entry key="myScope">
    ??? ??? ??? ??? <bean class="myScope"/>
    ??? ??? ??? </entry>
    ??? ??? </map>
    ??? </property>
    </bean>
    <bean id="usesScope" class="org.springframework.beans.TestBean" scope="myScope"/>??? ?

    當(dāng)然也可以編程實現(xiàn)
    ?
    Map scopes = new HashMap();
    scopes.put(this, new NoOpScope()); ??? ??? ??? ??? ??? ???
    CustomScopeConfigurer figurer = new CustomScopeConfigurer();
    figurer.setScopes(scopes);??? ?


    posted on 2007-01-04 18:37 布衣郎 閱讀(1560) 評論(0)  編輯  收藏

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


    網(wǎng)站導(dǎo)航:
     

    <2007年1月>
    31123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    常用鏈接

    留言簿(12)

    隨筆分類(59)

    隨筆檔案(57)

    blog

    java

    uml

    搜索

    •  

    積分與排名

    • 積分 - 357857
    • 排名 - 156

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 青草草色A免费观看在线| 亚洲av无码成人精品国产| 少妇中文字幕乱码亚洲影视| 亚洲精品乱码久久久久久中文字幕 | 理论亚洲区美一区二区三区| 亚洲乱亚洲乱妇24p| 亚洲人成欧美中文字幕| 亚洲精品无码国产片| 亚洲av日韩aⅴ无码色老头| 亚洲av永久无码精品秋霞电影秋| 亚洲日韩一区二区一无码| 亚洲精品久久无码| 色婷婷亚洲一区二区三区| 特级毛片aaaa级毛片免费| 午夜在线免费视频| 拍拍拍无挡视频免费观看1000| a在线免费观看视频| 久草免费手机视频| 国产免费的野战视频| 毛片网站免费在线观看| 国产精品久久久久影院免费| 亚洲VA综合VA国产产VA中| 中文字幕亚洲日本岛国片| 国产亚洲精AA在线观看SEE | 青青青国产免费一夜七次郎| 日本大片在线看黄a∨免费| 亚洲国产成人乱码精品女人久久久不卡| 亚洲人成网站18禁止一区| 国产l精品国产亚洲区在线观看| 亚洲va久久久噜噜噜久久天堂| 亚洲综合小说久久另类区| 亚洲精品无播放器在线播放| 一级毛片a免费播放王色电影 | 91视频免费观看| 久草视频免费在线观看| 国产精品免费小视频| 亚洲理论电影在线观看| 亚洲人成电影网站| 美女黄色毛片免费看| 在线看片免费人成视频福利| 免费影院未满十八勿进网站|