<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)

    主站蜘蛛池模板: 免费人人潮人人爽一区二区| 青春禁区视频在线观看直播免费| 一本久久a久久精品亚洲| 黄床大片30分钟免费看| 国产一区二区三区免费视频| 亚洲成aⅴ人片久青草影院按摩| 成人在线免费观看| 亚洲中文无码卡通动漫野外| 精品久久久久国产免费| 91精品视频免费| 四虎在线免费播放| 亚洲国产成人精品无码区花野真一 | 亚洲国产成+人+综合| 亚洲精品在线免费看| 亚洲特级aaaaaa毛片| 黄色网址免费观看| 亚洲最大的黄色网| 成全高清视频免费观看| 亚洲精品天堂无码中文字幕| 国产精品自在自线免费观看| 色噜噜狠狠色综合免费视频| 亚洲精品无码久久久久AV麻豆| 国产高潮流白浆喷水免费A片 | 久久精品国产亚洲av瑜伽| 国产在线观看免费不卡| 男人j进女人p免费视频| 国产国拍精品亚洲AV片| 永久免费AV无码网站国产| 亚洲一区精品中文字幕| 国产1000部成人免费视频| 亚洲欧美综合精品成人导航| 免费人成网站7777视频| xxxxx做受大片在线观看免费| 亚洲人成网亚洲欧洲无码久久| 免费人成毛片动漫在线播放| 亚洲第一页在线视频| 最近中文字幕免费mv视频7| 老子影院午夜伦不卡亚洲| 亚洲人成无码网WWW| 国产精品免费看久久久| 亚洲一级特黄大片无码毛片|