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

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

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

    隨筆-314  評論-209  文章-0  trackbacks-0

    研究了很久新出的 Spring 2.5, 總算大致明白了如何用標注定義 Bean, 但是如何定義和注入類型為 java.lang.String 的 bean 仍然未解決, 希望得到高人幫助.

    總的來看 Java EE 5 的標注開發方式開來是得到了大家的認可了.

    @Service 相當于定義 bean, 自動根據 bean 的類名生成一個首字母小寫的 bean

    @Autowired 則是自動注入依賴的類, 它會在類路徑中找成員對應的類/接口的實現類, 如果找到多個, 需要用 @Qualifier("chineseMan") 來指定對應的 bean 的 ID.

    一定程度上大大簡化了代碼的編寫, 例如一對一的 bean 映射現在完全不需要寫任何額外的 bean 定義了.

    下面是代碼的運行結果:

    man.sayHello()=抽你丫的
    SimpleMan said: Hi
    org.example.EnglishMan@12bcd4b said: Fuck you!

     

    代碼:

    beans.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    <context:annotation-config/>
    <context:component-scan base-package="org.example"/>
    </beans>

    測試類:

    import org.example.IMan;
    import org.example.SimpleMan;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    public class SpringTest {
        public static void main(String[] args) {
            ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
            SimpleMan dao = (SimpleMan) ctx.getBean("simpleMan");
            System.out.println(dao.hello());
            IMan man = (IMan) ctx.getBean("usMan");
            System.out.println(man.sayHello());
        }
    }

    自動探測和注入bean的類:

    package org.example;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.beans.factory.annotation.Qualifier;
    import org.springframework.stereotype.Service;

    @Service
    public class SimpleMan {
        // 自動注入名稱為 Man 的 Bean
        @Autowired(required = false)
        @Qualifier("chineseMan")
        //@Qualifier("usMan")
        private IMan man;   

        /**
         * @return the man
         */
        public IMan getMan() {
            return man;
        }

        /**
         * @param man the man to set
         */
        public void setMan(IMan man) {
            this.man = man;
        }

        public String hello() {
            System.out.println("man.sayHello()=" + man.sayHello());
            return "SimpleMan said: Hi";
        }
    }

     

    一個接口和兩個實現類:

    package org.example;

    /**
    * 抽象的人接口.
    * @author BeanSoft
    * @version 1.0
    */
    public interface IMan {
        /**
         * 打招呼的抽象定義.
         * @return 招呼的內容字符串
         */
        public String sayHello();
    }

     

    package org.example;

    import org.springframework.stereotype.Service;

    /**
    * 中國人的實現.
    * @author BeanSoft
    */
    @Service
    public class ChineseMan implements IMan {

        public String sayHello() {
            return "抽你丫的";
        }

    }

     

    package org.example;

    import org.springframework.stereotype.Service;

    /**
    * @author BeanSoft
    * 美國大兵
    */
    @Service("usMan")
    // 這里定義了一個 id 為 usMan 的 Bean, 標注里面的屬性是 bean 的 id
    public class EnglishMan implements IMan {

        public String sayHello() {
            return this + " said: Fuck you!";
        }

    }

    posted on 2009-06-25 15:06 xzc 閱讀(330) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 黄色网址免费在线观看| 亚洲黄色三级视频| 免费观看亚洲人成网站| 青青草国产免费久久久下载| 亚洲av无码国产综合专区| 成人免费视频77777| 亚洲乱码中文字幕小综合| 久热中文字幕在线精品免费| 亚洲视频在线免费看| 国内精品免费麻豆网站91麻豆| 亚洲第一二三四区| 野花高清在线电影观看免费视频| 亚洲伊人久久大香线蕉在观| 毛片a级毛片免费观看免下载 | 亚洲国产日韩在线一区| 最近2019年免费中文字幕高清 | 亚洲人成人一区二区三区| 91免费在线视频| 无码欧精品亚洲日韩一区| 精品福利一区二区三区免费视频 | 亚洲黄色免费在线观看| 国产成人免费网站| 亚洲AV成人无码久久WWW| 亚洲AV无码成H人在线观看| 国产日韩久久免费影院 | 最近2019免费中文字幕6| 中文字幕亚洲综合小综合在线| 无码高潮少妇毛多水多水免费| 国产亚洲一卡2卡3卡4卡新区| 亚洲一级特黄无码片| 免费人成网站在线观看不卡| 亚洲香蕉免费有线视频| 在线视频免费观看www动漫| 一级做a爱过程免费视频高清| 亚洲av福利无码无一区二区| 国产在线观看免费观看不卡| 免费看黄福利app导航看一下黄色录像 | 亚洲人成综合在线播放 | 亚洲天天在线日亚洲洲精| 成人黄动漫画免费网站视频| 成人免费夜片在线观看|