<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
    主站蜘蛛池模板: 亚洲日本在线观看网址| 亚洲精品无码一区二区| 99久久99这里只有免费费精品| 亚洲一区二区三区在线网站| 免费又黄又硬又爽大片| 怡红院免费全部视频在线视频| 91亚洲自偷在线观看国产馆| 亚洲国产免费综合| 巨波霸乳在线永久免费视频| 美女裸免费观看网站| 中文字幕亚洲精品| 亚洲精品WWW久久久久久| 999国内精品永久免费观看| 日日躁狠狠躁狠狠爱免费视频| 亚洲综合无码一区二区三区| 亚洲成年看片在线观看| 国产91免费视频| 拍拍拍无挡免费视频网站| 亚洲乱人伦中文字幕无码| 亚洲日韩区在线电影| 亚洲国产精品日韩专区AV| 中文字幕无码免费久久99| APP在线免费观看视频| 亚洲AV日韩AV无码污污网站| 亚洲色图黄色小说| 亚洲伊人久久精品影院| 在线观看免费精品国产| 67194成手机免费观看| www在线观看免费视频| 亚洲国产精品网站在线播放 | 亚洲大香人伊一本线| 亚洲中文字幕成人在线| 免费视频中文字幕| 91精品免费在线观看| 久久精品成人免费网站| 国产V片在线播放免费无码| 麻豆亚洲AV成人无码久久精品 | 国产亚洲精品精华液| 亚洲狠狠爱综合影院婷婷| 国产高清视频在线免费观看| 99热在线精品免费全部my|