<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麻豆蜜芽| 亚洲成A∨人片在线观看不卡| 亚洲六月丁香婷婷综合| 99久久99热精品免费观看国产 | 亚洲精品无码久久不卡| 色一情一乱一伦一视频免费看| 国产一区二区视频免费| 黄色毛片免费网站| 亚洲精品国产电影| 中文字幕一区二区三区免费视频| 亚洲日韩aⅴ在线视频| 免费看一区二区三区四区| 国产亚洲精品a在线无码| 久久精品乱子伦免费| 久久夜色精品国产噜噜噜亚洲AV| 国产成人福利免费视频| 亚洲一级毛片免费在线观看| 国内外成人免费视频| 美女黄频a美女大全免费皮| 国产成人精品久久亚洲| 久久这里只精品热免费99| 亚洲午夜精品在线| 精品国产免费观看| 国产真人无码作爱免费视频| 亚洲丁香色婷婷综合欲色啪| 美女被cao免费看在线看网站| 亚洲国产成人综合精品| 亚洲午夜久久久久久久久电影网| 无码A级毛片免费视频内谢| 亚洲一卡2卡4卡5卡6卡在线99| 日韩中文无码有码免费视频| 一区二区三区免费视频播放器| 亚洲成人动漫在线| 成年女人毛片免费观看97| 一级毛片视频免费观看| 久久精品国产亚洲香蕉| 免费观看毛片视频| 久草免费福利视频| 欧洲亚洲国产精华液| 亚洲国产成人片在线观看| 免费特级黄毛片在线成人观看|