<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 閱讀(472) 評論(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无码综合a国产av中文| 四虎www免费人成| 国产精品99爱免费视频| 国产成人免费a在线资源| 亚洲色偷偷色噜噜狠狠99网| 国产亚洲精品仙踪林在线播放| 成人啪精品视频免费网站| 亚洲精品二三区伊人久久| 中字幕视频在线永久在线观看免费| 久久精品国产亚洲AV无码麻豆| 暖暖免费日本在线中文| 麻豆国产入口在线观看免费| 在线观看亚洲av每日更新| 国产va免费观看| 亚洲精品无码专区在线在线播放 | 亚洲成a人片7777| 每天更新的免费av片在线观看| 久久国产亚洲高清观看| 麻豆国产精品免费视频| 亚洲色精品三区二区一区| 国产成人免费高清在线观看| 青青草国产免费国产是公开| 在线亚洲精品福利网址导航| 未满十八18禁止免费无码网站 | 亚洲综合免费视频| 亚洲色偷偷综合亚洲av78| 亚洲av日韩片在线观看| 亚洲一区免费视频| 少妇太爽了在线观看免费视频| 亚洲精品动漫在线| 日韩一区二区三区免费体验| 国产免费久久精品丫丫| 日韩一品在线播放视频一品免费| 一级毛片在线免费播放| 久久综合亚洲色一区二区三区| 在线观看免费视频网站色| 亚洲成AⅤ人影院在线观看| 亚洲最大av资源站无码av网址|