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

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

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

    posts - 165, comments - 198, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    spring 學習筆記

    Posted on 2007-12-21 16:33 G_G 閱讀(462) 評論(0)  編輯  收藏 所屬分類: Spring
    我 的 春天spring 正式開始 !^_^
    spring項目基本需要jar->commons-logging.jar;log4j-1.2.9.jar;spring.jar
    參考:http://www.redsaga.com/spring_ref/2.0/html/beans.html

    本文主要內容:
    1.單多配置文件的使用
    2.動態替換類方法(cglib)
    3.
    自定義作用域bean
    4.定制bean特性


    1).單多配置文件的使用
    1.1)配置文件:beans.xml格式(基本配置)
    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?
    ????"http://www.springframework.org/dtd/spring-beans.dtd"
    >
    <beans>
    ????
    <bean?id="userBean"?name="userBean"?
    ??????????class
    ="springtest.UserBean"?
    ??????????abstract
    ="false"?
    ??????????singleton
    ="true"?
    ??????????lazy-init
    ="default"
    ??????????autowire
    ="default"?
    ??????????dependency-check
    ="default"?>
    ????????????
    <property?name="name">
    ????????????????
    <value>bea</value>
    ????????????
    </property>
    ????
    </bean>
    ????
    </beans>

    spring 工廠建立單配置和多配置文件
    ??? //單配置文件加載
    ??? public
    ?void?testSp()throws?Exception{
    ????????Resource?res?
    =?new?FileSystemResource(
    ????????????
    this.getClass().getClassLoader().getResource("config/beans.xml").getPath()
    ????????????????);
    ????????BeanFactory?fac?
    =?new?XmlBeanFactory(res);
    ????????UserBean?uu?
    =?(UserBean)?fac.getBean("userBean");
    ????????System.out.println(uu.getName());
    ????????System.out.println(uu.getAge());
    ????}
    ??? //多配置文件加載
    ????public?void?testSps()?throws?Exception?{
    ????????ApplicationContext?act
    =new?ClassPathXmlApplicationContext(
    ??? ??? ???
    new?String[]?{"config/beans.xml",.....}
    ??? ??? );
    ????????UserBean?uu?
    =?(UserBean)act.getBean("userBean");
    ????????System.out.println(?uu.getName());
    ????}
    1.2) 還用一種是單配置多<import resource="。.xml"/>達到多配置
    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?
    ????"http://www.springframework.org/dtd/spring-beans.dtd"
    >
    <beans>
    ????
    <import?resource="beans_2.xml"/>
    ????
    <bean?id="userBean"?name="userBean"?
    ??????????class
    ="springtest.UserBean"?
    ??????????abstract
    ="false"?
    ??????????singleton
    ="true"?
    ??????????lazy-init
    ="default"
    ??????????autowire
    ="default"?
    ??????????dependency-check
    ="default"?>
    ????????????
    <property?name="name">
    ????????????????
    <ref??bean="str1"/>
    ????????????
    </property>
    ????
    </bean>
    </beans>

    加載就用上的 -》
    單配置文件加載

    2).動態替換類方法(cglib)
    配置文件中 替換方法(替換方法 getName ) lib中加入 cglib.jar
    <?xml?version="1.0"?encoding="UTF-8"?>
    <!DOCTYPE?beans?PUBLIC?"-//SPRING//DTD?BEAN//EN"?
    ????"http://www.springframework.org/dtd/spring-beans.dtd"
    >
    <beans>
    ????
    <import?resource="beans_2.xml"/>
    ????
    <bean?id="userBean"?name="userBean"?
    ??????????class
    ="springtest.UserBean"?
    ??????????abstract
    ="false"?
    ??????????singleton
    ="true"?
    ??????????lazy-init
    ="default"
    ??????????autowire
    ="default"?
    ??????????dependency-check
    ="default"?>
    ??????????????
    <replaced-method?name="getName"?replacer="rm">
    ??????????????????
    <arg-type>String</arg-type>
    ??????????????
    </replaced-method>

    ????????????
    <property?name="name">
    ????????????????
    <ref??bean="str1"/>
    ????????????
    </property>
    ????
    </bean>
    ????
    ????
    <bean?id="rm"?class="springtest.ReplacedMethod"/>
    </beans>

    springtest.ReplacedMethod類
    package?springtest;

    import?java.lang.reflect.Method;

    import?org.springframework.beans.factory.support.MethodReplacer;

    public?class?ReplacedMethod?implements?MethodReplacer?{
    ????
    ????
    public?Object?reimplement(Object?arg0,?Method?arg1,?Object[]?arg2)?throws?Throwable?{
    ????????
    return?"劉凱毅";
    ????}
    }

    結果: 不管你怎么setName getName出來的都是-》 “劉凱毅”

    3.自定義作用域bean 需要jdk1.5


    4.定制bean特性
    1)初始化回調 <bean id=".." class=".." init-method="init"/> 方法init()
    ? 和 繼承org.springframework.beans.factory.InitializingBean 實現接口方法
    ??? void afterPropertiesSet() throws Exception; 一樣
    2)

    主站蜘蛛池模板: 永久免费AV无码国产网站| 亚洲精品久久久www| 真人无码作爱免费视频| 亚洲人成网77777亚洲色| 精品国产免费人成电影在线观看| 亚洲熟妇丰满xxxxx| 国产亚洲成人在线播放va| 99在线精品免费视频九九视| 免费一区二区无码视频在线播放| 亚洲国产一区国产亚洲| 亚洲av午夜成人片精品电影| 久久久久久久岛国免费播放| 美女羞羞免费视频网站| 亚洲黄色一级毛片| 中文字幕精品无码亚洲字| 成人免费看吃奶视频网站| 久久精品一区二区免费看| 亚洲精品国产av成拍色拍| 亚洲午夜免费视频| 亚洲无码黄色网址| 在线观看免费为成年视频| 国产激情免费视频在线观看| 国产精品亚洲精品日韩动图 | 亚洲色精品88色婷婷七月丁香| 在线看免费观看AV深夜影院 | 五月天婷亚洲天综合网精品偷| 亚洲高清视频免费| 中文字幕免费人成乱码中国| 亚洲欧洲av综合色无码| 亚洲黄色片免费看| 亚洲AV无码乱码在线观看富二代| 免费中文字幕不卡视频| 欧洲美熟女乱又伦免费视频| 99精品国产成人a∨免费看| 两个人看的www视频免费完整版| 亚洲av无码片vr一区二区三区| 国产无限免费观看黄网站| 亚洲AV色欲色欲WWW| 亚洲视频一区二区三区四区| 久久精品国产亚洲AV无码麻豆| 国内精品免费视频自在线|