<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日韩av天堂影片精品| 亚洲精品国产日韩无码AV永久免费网| 国产伦一区二区三区免费| 亚洲AV香蕉一区区二区三区| 在线视频免费国产成人| 亚洲人成网站在线播放2019| 日韩免费一级毛片| 久久亚洲欧美国产精品| 亚洲国产一区视频| 91视频免费观看| 久久亚洲国产精品| 台湾一级毛片永久免费| 亚洲人成网亚洲欧洲无码| 国产午夜免费福利红片| 一区二区三区免费视频网站| 国产亚洲精品资源在线26u| 久久99国产综合精品免费| 亚洲H在线播放在线观看H| 国产精品深夜福利免费观看 | va天堂va亚洲va影视中文字幕| 波多野结衣免费在线观看| 亚洲色欲啪啪久久WWW综合网| 免费一级毛片在线观看| 西西人体免费视频| 亚洲日韩中文字幕| 免费看美女被靠到爽| aa在线免费观看| 亚洲综合在线成人一区| 成全视频免费高清 | 亚洲人成精品久久久久| 91成人在线免费观看| 亚洲精品一卡2卡3卡四卡乱码| 亚洲国产成人精品久久久国产成人一区二区三区综 | 免费萌白酱国产一区二区三区 | 久久亚洲AV无码精品色午夜麻| 久久久久久久91精品免费观看| 在线播放亚洲精品| 久久夜色精品国产噜噜亚洲AV| 在线A级毛片无码免费真人|