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

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

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

    yeafee@夜飛郎

    it's usually better to solve problems with simplicity and finesse rather than muscle.

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      33 隨筆 :: 3 文章 :: 2 評論 :: 0 Trackbacks
    Spring jump start

    Spring-enabled applications are like any Java application. They are made up of  several classes, each performing a specific purpose within the application. What makes Spring-enabled applications different, however, is how these classes are configured and introduced to each other. Typically, a Spring application has an XML file that describes how to configure the classes, known as the Spring configuration file.
    Listing 1.1
    The GreetingService interface separates the service's  implementation from its interface.   
    package com.springinaction.chapter01.hello;
    public interface GreetingService {
    public void sayGreeting();
    }

    Listing 1.2 GreetingServiceImpl.java: Responsible for printing the greeting                        
    package com.springinaction.chapter01.hello;
    public class GreetingServiceImpl implements GreetingService {
    private String greeting;
    public GreetingServiceImpl() {}
    public GreetingServiceImpl(String greeting) {
    this.greeting = greeting;
    }

    public void sayGreeting() {
    System.out.println(greeting);
    }

    public void setGreeting(String greeting) {
    this.greeting = greeting;
    }

    }

    Noticed that the greeting can be set in two different ways: by the constructor or by the property’s setter method.

    We’re going to let the Spring container set the greeting property. The Spring configuration file(hello.xml) in listing 1.3 tells the container how to configure the greeting service.

    Listing 1.3 Configuring Hello World in Spring                                                                      

    <?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="greetingService"
    class
    ="com.springinaction.chapter01.hello.GreetingServiceImpl">
    <property name="greeting">
    <value>Buenos Dias!</value>
    </property>
    </bean>
    </beans>

    Let’s dig into the details of this XML file a bit to understand how it works.At the root of this simple XML file is the <beans> element, which is the root element of any Spring configuration file. The <bean> element is used to tell the Spring container about a class and how it should be configured. Here, the id attribute is used to name the bean greetingService and the class attribute specifies the bean's fully qualified class name.

    xml文件的<value>元素定義了javabean之 greeting的值.下邊的一段代碼粗略的闡明了基于xml1.3文件的內(nèi)容,容器都做了些什么.
    GreetingServiceImpl greetingService = new GreetingServiceImpl();
    greetingService.setGreeting(
    "Buenos Dias!");

    Similarly, we may choose to have Spring set the greeting property through GreetingServiceImpl's  single argument constructor. For example:
    <bean id="greetingService"
    class
    ="com.springinaction.chapter01.hello.GreetingServiceImpl">
    <constructor-arg>
    <value>Buenos Dias!</value>
    </constructor-arg>
    </bean>

    The following code illustrates how the container will instantiate the greeting service
    when using the <constructor-arg> element:
    GreetingServiceImpl greetingService =new GreetingServiceImpl(“Buenos Dias”);
    The last piece of the puzzle is the class that loads the Spring container and uses it
    to retrieve the greeting service. Listing 1.4 shows this class.
    Listing 1.4 The Hello World main class                                                                                

    package com.springinaction.chapter01.hello;
    import java.io.FileInputStream;
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    public class HelloApp {
    public static void main(String[] args) throws Exception {
    BeanFactory factory 
    =
    new XmlBeanFactory(new FileInputStream("hello.xml"));
    GreetingService greetingService 
    =
    (GreetingService) factory.getBean(
    "greetingService");
    greetingService.sayGreeting();
    }

    }

    The BeanFactory class used here is the Spring container. After loading the hello.xml file into the container, the main() method calls the getBean() method on the BeanFactory to retrieve a reference to the greeting service. With this reference in hand, it finally calls the sayGreeting() method. When we run the Hello application, it prints (not surprisingly)

          Buenos Dias!

    The real power of Spring lies in how beans can be injected into other beans using IoC.
    see next........continue!
    posted on 2005-12-13 14:56 @yeafee 閱讀(335) 評論(0)  編輯  收藏 所屬分類: OpenSource
    主站蜘蛛池模板: 无码久久精品国产亚洲Av影片| 亚洲国产成人99精品激情在线 | 一级做a爰全过程免费视频| 亚洲欧洲综合在线| 永久黄网站色视频免费| 国产高潮久久免费观看| 亚洲综合激情六月婷婷在线观看| 日本xxwwxxww在线视频免费| 日韩电影免费在线观看网站| 国产成人亚洲精品| 亚洲中文字幕无码久久2017| 91免费播放人人爽人人快乐| 久久久久久A亚洲欧洲AV冫| 18禁美女裸体免费网站| 国产AV无码专区亚洲AV漫画| 国产成人yy免费视频| 一道本在线免费视频| 亚洲一区中文字幕在线观看| 亚洲国产精品日韩| 亚洲av永久无码精品秋霞电影秋 | 欧洲一级毛片免费| 日韩电影免费在线观看网址| 亚洲伊人久久大香线蕉| 国产精品亚洲玖玖玖在线观看| 无码一区二区三区AV免费| a级在线观看免费| 国产精品亚洲lv粉色| 亚洲高清无在码在线电影不卡| avtt亚洲天堂| 岛国大片免费在线观看| 玖玖在线免费视频| 男人j进女人p免费视频| 亚洲av永久综合在线观看尤物| 亚洲阿v天堂在线| 亚洲国产成人影院播放| 99在线视频免费观看视频| 久久精品视频免费播放| 人妖系列免费网站观看| 亚洲成a人无码亚洲成av无码| 亚洲免费观看在线视频| 亚洲AV无码一区二区乱孑伦AS|