<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 閱讀(326) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 老汉精品免费AV在线播放| 国产视频精品免费视频| 国产成人yy免费视频| 亚洲Aⅴ无码专区在线观看q| 国产无限免费观看黄网站| 亚洲精品人成无码中文毛片| 特级毛片aaaa免费观看| 亚洲最大av无码网址| 中文在线观看免费网站| 亚洲成AV人片在线观看| 蜜桃成人无码区免费视频网站| 久久精品国产亚洲AV麻豆王友容| 国产午夜精品久久久久免费视 | 亚欧免费无码aⅴ在线观看| 亚洲国产第一站精品蜜芽| 日本免费人成网ww555在线| 亚洲激情在线视频| aa级一级天堂片免费观看| 亚洲国产精品无码中文lv| 亚洲精品黄色视频在线观看免费资源| 91国内免费在线视频| 亚洲高清美女一区二区三区| 免费毛片在线看片免费丝瓜视频| 亚洲欧美在线x视频| 亚洲老妈激情一区二区三区| 亚洲电影在线免费观看| 亚洲欧美国产国产一区二区三区 | 亚洲香蕉免费有线视频| 天天天欲色欲色WWW免费| 男女男精品网站免费观看| 亚洲av永久无码精品网站| 免费影院未满十八勿进网站| 久久久久亚洲AV无码去区首| 亚洲精品无码MV在线观看| 国产精品久久永久免费| 阿v免费在线观看| 噜噜噜亚洲色成人网站∨| 国产a级特黄的片子视频免费| 久久久久久国产精品免费免费男同 | 黄页免费在线观看| 亚洲国产精品无码AAA片|