<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      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文件的內容,容器都做了些什么.
    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 閱讀(325) 評論(0)  編輯  收藏 所屬分類: OpenSource
    主站蜘蛛池模板: 精品国产免费一区二区三区| 亚洲国产午夜精品理论片在线播放| 深夜a级毛片免费无码| 在线观看免费污视频| 亚洲人成电影网站免费| 成人午夜18免费看| 亚洲AV性色在线观看| 国产v片免费播放| 无码精品人妻一区二区三区免费| 国产一卡二卡≡卡四卡免费乱码| 亚洲AV网一区二区三区| 免费一级毛片在线播放| 国产精品偷伦视频免费观看了| 亚洲日韩国产精品第一页一区| a级毛片毛片免费观看久潮| 亚洲福利在线视频| 精品免费人成视频app| 亚洲影院天堂中文av色| 国产免费私拍一区二区三区| 又大又硬又粗又黄的视频免费看| 国产亚洲成归v人片在线观看| 久久国产乱子伦精品免费不卡| 亚洲精品视频在线观看视频| 在线中文高清资源免费观看| 美女免费视频一区二区| 国产亚洲综合网曝门系列| 亚洲精品免费视频| 亚洲精华液一二三产区| 亚洲女人被黑人巨大进入| 无码国产精品一区二区免费模式 | 国产91免费视频| 色窝窝亚洲av网| 亚洲国产成人片在线观看| 免费99精品国产自在现线| 男女交性无遮挡免费视频| 亚洲AV天天做在线观看| 日韩一品在线播放视频一品免费| 中文字幕无线码免费人妻| 456亚洲人成影院在线观| 亚洲日韩av无码| 日本免费一区二区三区最新vr|