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

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

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

    閑人野居
    好好學習,天天向上
    posts - 57,  comments - 137,  trackbacks - 0
    ? 在spring 2.0 中,增加了自定義xml標記這一重大的功能。下面主要看一下spring 2.0實現這一功能的主要相關類:

    ?NamespaceHandlerResolver(接口)
    ??? 由DefaultBeanDefinitionDocumentReader使用,用于定位NamespaceHandler,指定特定的命名空間uri

    ?? 實現類:
    ?? DefaultNamespaceHandlerResolver
    ??
    ?? 通過map 保存所有的對應關系
    ?? 默認使用spring.handlers文件來保存所有的handlers
    ?? 可以定義其他的location 如:

    ?? String location = "org/springframework/beans/factory/xml/support/customNamespace.properties";
    ?? NamespaceHandlerResolver resolver = new DefaultNamespaceHandlerResolver(getClass().getClassLoader(), location);
    ??
    ?? NamespaceHandler(接口)
    ???
    ????? 基礎接口,用于DefaultBeanDefinitionDocumentReader處理自定義命名空間。
    ????? 方法:
    ???? ??? void init();
    ???????? 由DefaultBeanDefinitionDocumentReader調用在構造完后但在解析自定義元素前。
    ?
    ?? ????? BeanDefinition parse(Element element, ParserContext parserContext);
    ???????? 解析指定的元素。
    ?
    ?? ? ? ? BeanDefinitionHolder decorate(Node element,
    ??????????????????????????????????? BeanDefinitionHolder definition,
    ??????????????????????????????????? ParserContext parserContext);
    ???????? 執行相應的修飾。

    ?? 實現類:
    ????
    ???? NamespaceHandlerSupport(抽象類)
    ??
    ?? 主要的三個方法:
    ?? protected final void registerBeanDefinitionDecorator(
    ???????????????????????? String elementName,
    ???????????????????????? BeanDefinitionDecorator decorator)
    ?? 注冊decorator,通過element
    ?
    ?? protected final void registerBeanDefinitionDecoratorForAttribute(
    ????????????????????????? String attributeName,
    ????????????????????????? BeanDefinitionDecorator decorator)
    ??? 注冊decorator,通過attr
    ??
    ??? protected final void registerBeanDefinitionParser(
    ????????????????????????? String? elementName,
    ????????????????????????? BeanDefinitionParser parser)
    ??? 注冊BeanDefinitionParser,通過element

    ?? 實際的操作由具體的BeanDefinitionDecorator 或者BeanDefinitionParser 執行

    ? BeanDefinitionDecorator(接口)

    ?? 裝飾相關的自定義屬性。

    ???? AbstractInterceptorDrivenBeanDefinitionDecorator
    ????????? 用于注冊相應的Interceptor bean 定義,使用aop代理

    ? 其他類:

    ??? PluggableSchemaResolver,用于自定義相關的schema,默認的schema 保存于spring.schemas文件中

    ??? 可以通過覆蓋resolveEntity方法來裝載相應的自定義xsd文件

    ? 主要的執行類:
    ?

    ? XmlBeanDefinitionReader
    ?
    ??? 用于處理相應的讀取工作,其實主要的工作委派給BeanDefinitionDocumentReader


    ? 實際的類,就介紹到這,下一節通過實例來說明如何定義自定義xml 元素






    posted on 2006-10-27 18:08 布衣郎 閱讀(760) 評論(0)  編輯  收藏 所屬分類: spring

    <2006年10月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(12)

    隨筆分類(59)

    隨筆檔案(57)

    blog

    java

    uml

    搜索

    •  

    積分與排名

    • 積分 - 358025
    • 排名 - 156

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日韩亚洲AV无码一区二区不卡| 亚洲日本中文字幕区| 免费jjzz在线播放国产| 国产福利在线观看免费第一福利| 免费国产a国产片高清网站| 亚洲精品无码久久千人斩| 亚洲AV无码AV男人的天堂| 亚洲一卡2卡3卡4卡国产网站| 又大又硬又粗又黄的视频免费看| 99re在线精品视频免费| 国产免费av一区二区三区| 亚洲视频免费在线观看| 免费一区二区无码视频在线播放| 国产v精品成人免费视频400条| 国产成A人亚洲精V品无码| 亚洲aⅴ天堂av天堂无码麻豆| 亚洲一区二区无码偷拍| 91精品免费不卡在线观看| 亚洲精品亚洲人成在线播放| 三年在线观看免费观看完整版中文 | 亚洲精品国产专区91在线| 亚洲狠狠ady亚洲精品大秀| 亚洲伊人久久精品| 亚洲最大的成人网| 国产免费一区二区三区不卡| 亚洲一区免费在线观看| 青青青国产在线观看免费| 亚洲精品午夜久久久伊人| 麻豆精品成人免费国产片| 国产午夜免费高清久久影院| 亚洲中文字幕视频国产| 国产永久免费高清在线| 亚洲欧洲日产国码www| 日韩特黄特色大片免费视频| 日韩大片免费观看视频播放 | 国产桃色在线成免费视频| 日本系列1页亚洲系列| 国产亚洲A∨片在线观看| AV无码免费永久在线观看| 亚洲美女又黄又爽在线观看| 亚洲精品国产免费|