SlideShare uma empresa Scribd logo
1 de 27
Baixar para ler offline
。能功本基些一的     識認並,          Spring IDE        Spring IDE
裝安中    在何如紹介將也中節章個這而,擇選之員人計設的
          Eclipse
式程發開   用使數多是這,)
           Spring                 Development Environment, IDE
     (境環發開合整為作
Integrated          用使將中書本在          Eclipse
                。係關賴依之件物              的紹介所章 第理管
                                    Business            1
,能 功 器 容 的   IoC     用 使 並,心 信 的
                    Spring             用 使 對 您 強 增 以,式
                                      Spring
程 Spring個一第成完際實將,中節章個這在,的單簡當相是卻式程
Spring個 一 第 成 完 要 過 不,間 時 的 當 相 要 需 能 功 的       有所解瞭
                                               Spring
要,)                      (架框式程 用應的位方全個是
         A pplication framework                             Spring
                                           Spring 入門
     2
Spring 2.0   良信林(冊手術技            – http://openhome.cc      )

  2.1 第一個 Spring 程式
  個一這,的單簡很是式程  個一第門入,架框式程用應個一為作                 Spring
  執、寫撰、定設行進   用使,載下案檔關相的
                Spring     行進將中節小                  Eclipse
                    。式程
                  Spring  個一第成完,行

  2.1.1 下載、設定 Spring

    至接連請, 是本版的新最      ,候時的書此寫撰
                         S pring                  2.0            Spring   方官的
  :            在 是 址 網,載 下 的 案 檔 行 進 站 網
                                     http://springframework.org/




                              圖    2.1 Spring   址網方官
      面頁載下,面頁載下至入進以可,結鏈」
                  D ownloads「 邊左選點
                             的                                            Spring
         至接連結鏈」
   Framework 2.0      「個有會中          Download                    Sourceforge




2 2
Chapter 2 Spring   門入

 (   http://sourceforge.net/project/showfiles.php?group_id=73357&package
 _id=173644&release_id=452461            :)




                    圖   2.2   從   Sourceforge   載下   Spring   案檔關相
        是個一,案檔載下個兩有供提上
     Spring   Sourceforge               在                          spring-framework-
。                 是個一,
2.0-with-dependencies.zip                            spring-framework-2.0.zip
、 、           、 些一了括包案檔載下的
with-dependencies                                  ant    j akarta-commons    s truts
這要需也您果如,案檔
velocity         依相的案專 碼始原放開它其等   Java                library
這載下站網屬專個各至別分再用不就此如,本版個這載下以可,案檔關相些
             載 下要需只 則,案 檔關相 些這有經 已果如 ,案檔 些                    spring-framework-2.0.zip
                                          。案檔個這
檔擇選,                              載下接直您議建
                        spring-framework-2.0-with-dependencies.zip
接最個一擇選以可,站網) (射鏡擇選要需會,後之結鏈載下的案                  m irror
        。 些 一 快較比 會 時 載 下 , 站 網 射鏡的 域 區 在 所 載 下 您 近


                                                                                        2 3
Spring 2.0      良信林(冊手術技              – http://openhome.cc         )

  要需所時   用 使 是 就 下 錄 目 在,後 之 縮 壓 解 並 案 檔 載 下
              zip                             dist                       Spring
  是的中錄目 在則,本版               是 的載下 果 如 , 案 檔 關 相 的
                                       with-dependencies                  lib
  讀閱要需者或,件文 的         詢查要需果如,案檔依相的到用會能可          Spring        API
  Spring   。件文關相到找中錄目 以可則,件文考參    docs




                    圖   2.3 spring-framework-2.0-with-dependencies       容內的
  類的要需所能功的援支
           dist    有所了括包      ,下錄目 在
                             s pring.jar               Spring
  到找下錄目         在以可則,心核       是只的要需果如。別
                               Spring                       dist/modules
  的它其將再,援支架框子的它其
  spring-core.jar       到用要需後日果如,            Spring
  jar      、        如例,可即定設的
                    Classpath     至入 加案 檔             spring-aop.jar spring-webmvc.jar
  。案檔 的 別個 入加要 需不是 處好, 案檔 個 這  用 使接直 常通。 等
                          spring.jar                                              jar




           在放是都案檔關相   的您設假邊這,境環的作操一統了為                spring
           C:workspacelibraryspring-framework-2.0
           的 圖 考 參 可,                                                       2.3
           是境環發開合整的用使所, 是    的用使所外另。容內 JDK    5.0
           進
           Eclipse 3.2 站網方官   在 以 可,
                                 E clipse            h ttp://www.eclipse.org/



2 4
2
                :示所圖下如,下錄目                     在存           C:workspace
 儲是案專而,稱名              SpringDemo
                 是 設 假 邊 這 , 稱 名取案 專 的 您 為 並 , 鈕 按
    N ext
」 「下按,」              J ava Project
               「擇選中塊方話對」               「在,後之目          N ew Project
 項」    F ile/New/Project...
           「的上單選                           Eclipse
                           行 執 ,增新 的 案 專 行 進 先 後 之
Eclipse
    行執請。             Eclipse 3.2
                了載下經已您設假邊這,理管的)                                       Classpath
 如(源資種各行進便方以 )                       I ntegrated Development Environment, IDE
                                                 (
 境環發開合整用使配搭是好最,時式程寫撰架框式程用應用使在
                     2.1.2 準備 Spring 設計環境(使用 Eclipse)
                                  。一之因原是也式程用應
            Spring
               發開來       Eclipse
                     擇 選 員 人 發 開 多 許 ,然 當 ,節 細 些 一 的 意
            注要所時     Spring
                   寫撰到觸接以可是因原的              用 使。載 下 行 Eclipse
門入      Chapter 2 Spring
Spring 2.0   良信林(冊手術技          – http://openhome.cc        )




                  圖   2.4   在   Eclipse   建新中   SpringDemo   案專




2 6
2 7
                           式方的案檔建新中        Eclipse   在    2.5   圖
                               :示所
  圖下如,作操行進樣這是都,案檔某建新到提若中節章各後以,案檔種各
  增新鍵右鼠滑按接直,中錄目的定指上案專在以可,後之建新案專在
                           。下錄目 的                                                  bin
                 . class
  案專在置放會 而,下錄目 的案專在置放會 設預,」          src                            . java         folders
  C reate separate source and output
                「 選,定設
                 擇    」     「 圖在以
                             的                           P roject Layout     2.4
  可這,置放開分案檔                . class
              的好譯編跟碼式程始原 將議建邊這在                                 . java
  門入   Chapter 2 Spring
Spring 2.0       良信林(冊手術技                – http://openhome.cc             )

   言而體具(中之理管案專至入加    的關相   將須必,著接
                             Spring              library
  」        「上單選行執請,)中
            .jar         至定設案檔 將是就
                                 Classpath                                   P roject/Properties
  ,」       「的上塊方話對」           「擇選,目項
                    P roperties for SpringDemo                               J ava Build Path
              :示所 圖如,」    「至籤標面頁換切並
                              L ibraries                 2.6




                                           圖   2.6   定設      library


        「下按如例,案檔 的依相入加中面頁個這在以可                         jar                          A dd External
      的
  JARS... 定設來未了為過不,源來的案檔 擇選可即,」
                              .jar                                              Spring      library
  」       下 」
         「 按請,       「 自中
                      訂      在以可您,見起便方
                              Eclipse                U ser Library                 A dd Library...
  」 「下按後」       「擇選中窗視」      「的來下接在,鈕按
                             A dd Library                          U ser Library             N ext
   在,窗視的 圖示顯會將著接,鈕按」           「下按並,鈕按
                        U ser Libraries...                                         2.7
  」        「在請,       增新以可,鈕按」 「下按中當
                   N ew...                           User Library            N ew User Library
            :鈕按」 「下按後」          「名取中窗視
                      S pring 2.0 Core                       OK




2 8
Chapter 2 Spring   門入




                            圖   2.7   增新   User Librariy


、         將,鈕按」                   「下按以可著接
                           Add JARs...                          spring-core.jar
的範示後稍是這,入加
spring-beans.jar              的依相及以,
                                commons-logging.jar
及錄目          在以可,案檔 的需所式程
         Spring                  .jar   個一第                  dist/modules
定設來   用 使 要 想 若 外另, 案 檔 些 這 到 找 中 錄 目
lib/jakarta-commons                                                  Log4j
:         的下錄目
      l ogging          入加要需還則,息訊)      (誌日
                                          lib/log4j             log4j-1.2.14.jar




                      圖   2.8   增新    Spring 2.0 Core Library




                                                                                   2
Spring 2.0   良信林(冊手術技            – http://openhome.cc        )

    的訂自成完可即鈕按」 「下按,後果結的 圖如成完
                 2.8                      OK                           User Library
   「的 圖在要只則,    的 訂 自 入加要 需 若 後 之 , 增 新 之Library               2.6      J ava Build
  :可即」
  Path     「擇選並,」           「擇選中」
                   A dd Library...                  U ser Library




                               圖   2.9   入加   User Library




  2.1.3 撰寫第一個 Spring 程式

  (件組個一第的您寫撰來                      C omponent      的單簡個一是只它,)           JavaBean   ,
    :呼招 聲 打 者 用 使 向 來 用
      SpringDemo                                                    HelloBean.java
  package onlyfun.caterpillar;

  public class HelloBean {
      private String helloWord;

         public void setHelloWord(String helloWord) {
             this.helloWord = helloWord;
         }

         public String getHelloWord() {


2 1
Chapter 2 Spring   門入

              return helloWord;
      }
}



強為 ( 語 呼 招 的 新 定 設 來      個這
                         setHelloWord()   過透以可您後稍    Setter
些這作來式程寫撰自親是不並過不,)                   用使以所,字文是的入注調
                                    Word
以 可 著 接,作 動 的 定 設 作 您 為 來     由 ,義 定 以 加 案 檔 態 組 在 是 而 ,事
                                            Spring
件 物依 相 成 完 何 如 , 器 容
      Bean                訴告 會 案 檔 義 定 , 案 檔 義 定 的 寫 撰
                                                     Spring
名取邊這如例,義定由自以可稱名案檔的檔義定 ,作動等入注係關的
                        B ean
    beans-config.xml                     :              為
    SpringDemo                                                    beans-config.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"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

      <bean id="helloBean"
            class="onlyfun.caterpillar.HelloBean">
          <property name="helloWord">
              <value>Hello!Justin!</value>
          </property>
      </bean>

</beans>



每為來         用使而,點節根為作
          Bean                   以是中檔義定 在
                                   <beans>                           <bean>
以 可後稍 , 稱 名 別 識 的 例 實 定 設 以 用 性 屬 , 定 設 行 進 個 一
      Bean                " id"                  Bean
的 定指來用性屬
      " id"          ,例實的 得取來稱名的定指所 用使
                                     Bean              " class"               Bean
稱名的         了定設           的籤標
                  <property>             ,稱名別類
                                             "helloWord"             Setter
    。值串字的入注將了定設上籤標
    s etHelloWord                 在並,)
                                  <value>     (


                                                                                 2 11
Spring 2.0   良信林(冊手術技              – http://openhome.cc       )

       : 式 程 範 示的單 簡 個 一 寫 撰 來 著 接
      SpringDemo                                                 SpringDemo.java
  package onlyfun.caterpillar;

  import    org.springframework.core.io.ClassPathResource;
  import    org.springframework.core.io.Resource;
  import    org.springframework.beans.factory.BeanFactory;
  import    org.springframework.beans.factory.xml.XmlBeanFactory;

  public class SpringDemo {
      public static void main(String[] args) {
          Resource rs =
              new ClassPathResource("beans-config.xml");
          BeanFactory factory = new XmlBeanFactory(rs);

            HelloBean hello =
                (HelloBean) factory.getBean("helloBean");
            System.out.println(hello.getHelloWord());
        }
  }



                                   了作實別 類
       org.springframework.core.io.ClassPathResource                    org.spring-
 framework.core.io.Resource   義定 的定指取讀下      從可,面介
                                            Classpath                   Bean
 定指要果如,檔               Bean   用使以可則,置位徑路對相或徑路對絕的檔義定
                                          。
 org.springframework.core.io.FileSystemResource


                    用 使 以 所 , 檔 義 定 是的 用 使 邊 這 於 由
                              XML                        org.springframework.beans.
                了作實
 factory.xml.XmlBeanFactory     ,別類   XmlBeanFactory            org.springframe-
       立建並義定取讀來用,面介
 work.beans.factory.xml.BeanFactory
       。器容 的供提所
 BeanFactory         是就,說來體具
                       B eanFactory   ,例實           Spring              IoC

       的    ,能功之別類 1             的作實所中章 第同如就
                                       BusinessFactory                   Spring
       、立建以可,性特用通備具更但,子例作實個一的式模
 BeanFactory      Factory                 是

2 12
Chapter 2 Spring     門入

                             在, 是的 意 注要 。件 物的 態型 同不 理 管
                                             Spring 1.2   ,後之     XmlBeanFactory   只
         Resource              是像,件物的面介              作實 受 接
                                                          、
                                       ClassPathResource FileSystemResource        、
         。等
InputStreamResource   、                   、
                        ServletContextResource      UrlResource

由藉,能功器容 的                   用使來度角的次層低較比從是這     Spring       IoC
什是賴依的邊這,入注係關的賴依成完並,案檔態組取讀來
BeanFactory
介的 留 保 所      過透,件物
             HelloBean        於依相例實的     String    是的指?麼          Setter
在死寫語呼招將是不而,入注賴依個這成完來
            Setter injection                        用使,面
HelloBean                                      。中
由藉以可,後之護維係關成完並定設態組的
    BeanFactory           Bean            取讀
用使果如。例實
getBean()            得取來稱名的   Bean       定指並法方            Bean
實 立建際實會才,時件物 要需正真在有只,話的
BeanFactory                             Bean                               Bean
          。例實 立建就時                      立建始 開 一 在 是 不 而 , 例
                               BeanFactory                Bean

式程 行 執 看 觀 便 方 了 為,息 訊 誌 日 多 許 示 顯 下 台 控 主 在 會 設 預
    Spring
下          的 案 專 在 以 可此 因 , 級 層 示 顯 的 息 訊誌 日 定 設 以 可 , 果 結 的           Classpath
     log4j.properties  :示所下如容內,案檔                        立建
  SpringDemo                                                      log4j.properties
log4j.rootLogger=WARN, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n


會 才, 息 訊)         (示 警 有 只 定 設 級 層 示 顯 的 誌 日 , 中 案 檔 個 這 在   W ARN
相 之 案 檔 各 的 寫 撰 所 上 以 ,中
                    s tdout    在 。 中 之) (出 輸 準 標 在 示 顯
                                        Eclipse
                                            :示所圖下如置位對



                                                                               2 13
2 14
           。定設案專成完構結案檔的案專斷判動自會                                     Eclipse
      ,稱名的同相           SpringDemo
                  與取稱名案專,時案專    啟開                            Eclipse
      在後然,性屬讀唯除解,錄目      至製複之將以可,案      workspace
      專  SpringDemo
             的應對相到找下錄目      的碟光在以可               examples
         。 碼 式程行 一 何 任 的 件 組 改 修用不 而 , 可 即 案 檔 態 組
改修要只,係關賴依的間之件物些一變改要想果如,著味意就,看來度角
的 用 通 從,  HelloBean.java
              改 修 用 不,了 以 可 就 定 設 的 中 性 屬                           "helloWord"
中  beans-config.xml
          改更要只則,語呼招變改要想天今果如
                       果結行執式程      Spring   個一第   2.11    圖
                         :果結的後之行運際實看看來」                                 Application
R un/Run As/Java   「 上單選行執,後案檔
                    的                啟開在以可    SpringDemo.java
                          式程   Spring   個一第    2.10   圖
                   )   – http://openhome.cc       良信林(冊手術技              Spring 2.0
Chapter 2 Spring    門入

2.1.4 撰寫第二個 Spring 程式

了您讓是的目要主,式程的單簡很是式程   個一第的寫撰所前先
                          Spring
示所章 第下一顧回來下接。驟步的需所式程    的單簡個一成完,解
                      Spring                                    1
讀責負,別類
     Business 個一寫撰行自是時當,式程     的範           BusinessFactory
功的供提所   用改以可邊這在,係關賴依成完並件物成生、檔義定取                       Spring
             。
       BeanFactory    代取      以,能
                          BusinessFactory

程先首,出列併一案檔關相的需所將邊這在,容內案專現呈整完了為
                :面介       的象抽於賴依式
                 IDeviceWriter


  SpringDemo2                                        IDeviceWriter.java
package onlyfun.caterpillar;

public interface IDeviceWriter {
    public void saveToDevice();
}


    個有   FloppyWriter   了現實      IDeviceWriter   :示所下如,面介
  SpringDemo2                                         FloppyWriter.java
package onlyfun.caterpillar;

public class FloppyWriter implements IDeviceWriter {
    public void saveToDevice() {
        System.out.println("   …機碟軟至存儲  ");
    }
}


    設假          的象抽於賴依它,求需的料資存儲個有別類
           Business
IDeviceWriter   實的     於 賴 依,為 行 的 料 資 存 儲 上 際 實 , 面 介IDeviceWriter
,件物作     B usiness                   :下如作實別類

                                                                      2 1
Spring 2.0     良信林(冊手術技       – http://openhome.cc   )

      SpringDemo2                                         Business.java
  package onlyfun.caterpillar;

  public class Business {
      private IDeviceWriter writer;

        public void setDeviceWriter(IDeviceWriter writer) {
            this.writer = writer;
        }

        public IDeviceWriter getDeviceWriter() {
            return writer;
        }

        public void save() {
            if(writer == null) {
                throw new RuntimeException("DeviceWriter needed...");
            }
            writer.saveToDevice();
        }
  }


 個一定設並,別類       1          個一寫撰行自是章 第在
                                    BusinessFactory
 所   用使 接 直 以 可 在現, 定 設 關 相 的 訊 資 別 類 行 進
 config.properties                                             Spring
         :示所下如檔義定 定設以可,能功器容 的供提
          IoC                     Bean


      SpringDemo2                                      beans-config.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"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

        <bean id="writer" class="onlyfun.caterpillar.FloppyWriter"/>

        <bean id="business"
              class="onlyfun.caterpillar.Business">
            <property name="deviceWriter">
                <ref bean="writer"/>



2 16
Chapter 2 Spring   門入

         </property>
    </bean>
</beans>


            生產需只式程於由,訊資的 個兩了定設中檔義定在
                                 Bean                               FloppyWriter
一定設籤標          用 使 接 直 以 所, 它 給 係 關 賴 依 的 何 任 定 設 用 不 而, 例 實   < bean>
考參要。考參例實的
    " id"   writer   Bean給定設之將並,例實 的                  為 個
                                                   Business
屬
IoC     其定指並,籤標 用使以可,例實 的定設已中器容
                        Bean                      < ref>                 " bean"
之件物個兩立建動自會器容 此如,稱名 之例實 的賴依所為性
                 Bean          " id"              IoC
                                               。係關賴依的間
之,可 即 同 相 案 專 個 一 前 與 容 內 ,案 檔
                      log4j.properties        立建以可還您
範 示 個 一 立 建 請 ,後 最 。 定 設 的             明說複 重 再 不 將 例 範 的 後
                               log4j.properties
                                                   :下如式程
    SpringDemo2                                                 SpringDemo.java
package onlyfun.caterpillar;

import      org.springframework.core.io.ClassPathResource;
import      org.springframework.core.io.Resource;
import      org.springframework.beans.factory.BeanFactory;
import      org.springframework.beans.factory.xml.XmlBeanFactory;

public class SpringDemo {
    public static void main(String[] args) {
        Resource rs =
            new ClassPathResource("beans-config.xml");
        BeanFactory factory = new XmlBeanFactory(rs);

            Business business =
                (Business) factory.getBean("business");
            business.save();
       }
}




                                                                              2 17
Spring 2.0   良信林(冊手術技             – http://openhome.cc           )

       : 示 所 下 如 面 畫 考參個 一 的 果 結 行 執 式 程


                        圖   2.12   個二第     Spring   果結行執式程
   至存儲要是而,機碟軟至存儲料資將再不別類
                 Business   天今設假                                                    Usb
 ,面介       作實別類       個一讓以可則,上碟硬動行
                                UsbDiskWriter                    IDeviceWriter
 為性屬    的Bean 個這    改修中檔義定      在並   "writer"             Bean        "class"
 儲的賴依所層底別類
 UsbDiskWriter ,式程行執新重此如,別類                         B usiness
     對用不而,為行存儲的義定所       為換替會就,為行存
                      UsbDiskWriter                                             Business
                          。改修的何任出作

 2.1.5 Spring 2.0 的 XML 設定

    過用 使 經 曾 您 果 如          Spring 1.2    這 在 , 到 現 發 經 已 許也 , 本 版 的 前 之 或
 ,中檔義定 的範示所邊    XML                X ML        :            於基是法語定設
                                                            XML Schema
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.springframework.org/schema/beans
   http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
     ...
 </beans>

 用使要想果如                        建,定設籤標
                      Spring 2.0            與能 功 新 些 一 的 供 提 所    XML
    於基用採議       XML Schema        用採議建也隊團發開           ,式方定設的
                                                S pring                            XML
   合結,
 Schema           Spring 2.0   簡更容 內 的 檔 定 設 讓 以 可 , 定 設 籤 標 的 新
                                                           XML
  。取讀易容且潔

2 18
Chapter 2 Spring   門入

於 基用採 法 無 或 算 打 不 果 如             XML Schema   ,式方定設的    S pring 2.0   中
:式方定設的 於基供提也  DTD
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN"
   "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
    ...
</beans>

用 使 要 想若如 例 , 的 勵 鼓 被 是 式 方 的
            XML Schema                   於基              Spring 2.0    新
  < util>        : 定 設 下 如 要只 則 , 定 設 籤 標 的
<?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:util="http://www.springframework.org/schema/util"
  xsi:schemaLocation="http://www.springframework.org/schema/beans
  http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
  http://www.springframework.org/schema/util
  http://www.springframework.org/schema/util/spring-util-2.0.xsd">
    ...
</beans>

   於對       Spring 2.0   會將 , 中 節 章 的 當 適 後往在 , 定 設 籤 標 些 一 的 增 新 所
。明說以加別分




                                                                       2 1
Spring 2.0   良信林(冊手術技               – http://openhome.cc      )

  2.2 安裝、使用 Spring IDE
       用使。」器其利先必、事其善欲工「:句一話老是仍免不                                          Eclipse   並
     在以可,好更以可但,合組的錯不個是式程用應發開來
        Spring                                 合結                              Eclipse
  高更有時式程用應發開    用使在您讓,
          Spring IDE             的
                            plug-in          裝安中     Spring
        。     用使 與 裝 安 何 如 紹 介 來將中 節 小 個 這 , 率 效 的     Spring IDE



  2.2.1 安裝 Spring IDE

  開在供提可,Spring IDE  的薦推所站網方官
                       Spring          是              Eclipse plug-in
      與 看 觀 式 方 的 化視可 以 、 證 驗 行 進 檔 義 定 對 時
      Spring       Bean                              發                  Bean     Bean
       裝安中     於 何如下 一 紹 介 來 邊 這 在 ,能功 等 係 關 賴 依 的 間 之        Eclipse          Spring
  IDE                                            。
              裝安併一以可,前之裝安 的
                 Spring IDE                 行進在                  Graphical Editing
  是 就 也,
  Framework   示顯 以礎基為作它用使
                       Spring IDE      為 因,                    Bean Graph
        行執請先首。係關賴依的間之 與 示顯式方的化形圖以
                            Bean      Bean                                     Eclipse
         「擇選後然,」                             「的上單選
               H elp/Software updates/Find and Install                    S earch for
         :示所圖下如,鈕按」 「下按再,」
  new features to install                    N ext




2 2
Chapter 2 Spring       門入




                            圖   2.13   的用可尋搜        Plug-in


「的來下接在           I nstall   「下按,中窗視」                N ew Remote Site...    新,鈕按」
 的     增
  Spring IDE    Update Site   :是址網,                                        :
                                              h ttp://springide.org/updatesite/




                    圖    2.14   增新     Spring IDE   的   Update Site


「的增新擇選請,後之  Spring IDE 的       增新在
                             Update Site                                  S pring IDE   」
  裝安便以,」                 「擇選併一且,目項
                   C allisto Discovery Site                           Graphical Editing
     「擇 選 要 需 還 後 鈕 按 」 「 下 按 ,
Framework          F inish                                  U pdate Site Mirrors   ,」
                                                                                   2 21
Spring 2.0   良信林(冊手術技             – http://openhome.cc           )

  行進會著接,」 「下按後」                「擇選請
           C allisto Discovery Site               OK                          plug-in   的
 為本版的            , 時節章 個 這 寫 撰 在 。 尋 搜
                                 G raphical Editing Framework                   3.2.1   ,
 :裝安行進以目項擇選圖下如請, 為本版的新最
 Spring IDE                    1.3.6




               圖   2.15   裝安   Graphical Editing Framework   與   Spring IDE


         成完步一步一,引指的靈精裝安依請來下接                                       Graphical Editing
 動啟新重求要會後成完裝安,裝安與載下的
 Framework         Spring IDE         與
 」
 Eclipse    「的 上 單 選 行 執 以 可 , 後 之 動 啟 新 重 ,         H elp/About Eclipse SDK
 與              看看來」
                   P lug-in Details  「下按並,令指    Graphical Editing Framework
 Spring IDE                。成完裝安否是




2 22
Chapter 2 Spring    門入




    圖   2.16   視檢   Graphical Editing Framework   與   Spring IDE   成完裝安否是

2.2.2 使用 Spring IDE

入加要,範示作來       的發開所前先以SpringDemo                            Spring IDE    支能功的
  「 執,鍵右鼠滑按上案專
   行    SpringDemo  在請,援                                                 」
                                                      A dd Spring Project Nature
               :示所圖下如,令指




                      圖   2.17   入加上案專在    Spring IDE    援支

                                                                             2 23
2 24
          : 明說與 示 標 誤 錯 現 出 會 則,稱 名 別 類 的 誤 錯 了 入
鍵時定設若如例,確正否是稱名別類的定設所證驗助協以可還,外之確正
定設否是等         <beans>
         如籤標的中案檔 證驗以可了除              XML                       Spring IDE
                      理管證驗入納檔義定      Bean   將   2.18   圖
                                               :檔義定
Bean                                 A dd...
   的 理 管 證 驗 行 進 要 入 加 , 鈕 按」 「按 中 籤 頁」           「在          C onfig Files
,目項」    S pring
           「擇選後然,令指」               P roject/Properties
                                          「的上列單選行執須
必 ,能功 個 這 有 擁 了 為 , 確正定 設 否 是 容 內 的 檔 義 定    查檢助協以可        Bean
S pring IDE       S
       。樣字 個一現出會上示圖案專,後援支的                     入加          Spring IDE
                  )   – http://openhome.cc      良信林(冊手術技            Spring 2.0
Chapter 2 Spring   門入




         圖   2.19 Spring IDE    出驗檢可       Bean    定設誤錯的上檔義定
   換切以可   Eclipse    ,現出有沒果如(」           「至籤頁的方下右
                                            S pring Beans
  「上單選行執請                  「擇選並,」
               W indow/Show View/Other...                       S pring/Spring
    ,) 」
Beans   S pring IDE  定 示 顯 式 方 的 化 視 可以,中 籤 頁 個 這 在 以 可                Bean
:要摘點節的中檔義




                 圖   2.20 Spring IDE   的   Beans   示顯要摘點節
「行執鍵右鼠滑按上檔義定 在以可
        Bean                                           ,令指」
                                                  S how Graph      S pring IDE
 的 中 檔 義 定 示 顯,式 方 的 化 形 圖 以 會
                         Bean                  Bean   與 及 以,義 定 Bean      Bean
               :係關賴依的間之


                                                                              2 2
Spring 2.0   良信林(冊手術技           – http://openhome.cc       )




                             圖   2.21   示顯   Bean Graph


        的寫撰所前先以       SpringDemo2       ,例為案專        S pring IDE   圖如示顯會將
 2.22   :     的
         Bean Graph




                      圖   2.22 Spring IDE   化視可的    Bean   理管




2 26
2 27
                      Spring   個一第的您        2.23   圖
                        。式方定設與能功之器容 的                            IoC
 Spring
    解了入深,式程               Spring
                個 一 第 的 節 章 個 這續 接 將 , 始 開 節 章 個 一
 下在先首,能功個一每的              Spring
                索探的步一步一要就來下接但,的單簡是
 Spring
    門入,用使門入的              Spring IDE
                    了紹介也並,式程用應               發開中        Spring
 Eclipse
     在何如解了您讓,式程                    Spring
                      的 單 簡個兩 了 範 示 中 節 小 個 這
                                                   2.3 接下來的主題
 門入    Chapter 2 Spring

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
Spring framework in depth
Spring framework in depthSpring framework in depth
Spring framework in depth
 
Spring User Guide
Spring User GuideSpring User Guide
Spring User Guide
 
Spring introduction
Spring introductionSpring introduction
Spring introduction
 
PUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBootPUC SE Day 2019 - SpringBoot
PUC SE Day 2019 - SpringBoot
 
Introduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoCIntroduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoC
 
CH12:Lambda
CH12:LambdaCH12:Lambda
CH12:Lambda
 
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDEJava SE 8 技術手冊第 2 章 - 從JDK到IDE
Java SE 8 技術手冊第 2 章 - 從JDK到IDE
 
Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans Spring - Part 1 - IoC, Di and Beans
Spring - Part 1 - IoC, Di and Beans
 
バッチは地味だが役に立つ
バッチは地味だが役に立つバッチは地味だが役に立つ
バッチは地味だが役に立つ
 
Spring boot
Spring bootSpring boot
Spring boot
 
react-scriptsはwebpackで何をしているのか
react-scriptsはwebpackで何をしているのかreact-scriptsはwebpackで何をしているのか
react-scriptsはwebpackで何をしているのか
 
Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論Java SE 8 技術手冊第 1 章 - Java平台概論
Java SE 8 技術手冊第 1 章 - Java平台概論
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
 
Java Spring Framework
Java Spring FrameworkJava Spring Framework
Java Spring Framework
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
 
Spring framework
Spring frameworkSpring framework
Spring framework
 
はじめてのSpring Boot
はじめてのSpring BootはじめてのSpring Boot
はじめてのSpring Boot
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
 
Spring boot jpa
Spring boot jpaSpring boot jpa
Spring boot jpa
 

Destaque

Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合
Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合
Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合
Justin Lin
 

Destaque (20)

Spring 2.0 技術手冊第十章 - 專案:線上書籤
Spring 2.0 技術手冊第十章 - 專案:線上書籤Spring 2.0 技術手冊第十章 - 專案:線上書籤
Spring 2.0 技術手冊第十章 - 專案:線上書籤
 
Spring 2.0 技術手冊書名頁
Spring 2.0 技術手冊書名頁Spring 2.0 技術手冊書名頁
Spring 2.0 技術手冊書名頁
 
Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合
Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合
Spring 2.0 技術手冊第八章 - View 層方案、Web 框架整合
 
Spring 2.0 技術手冊第九章 - API 封裝
Spring 2.0 技術手冊第九章 - API 封裝Spring 2.0 技術手冊第九章 - API 封裝
Spring 2.0 技術手冊第九章 - API 封裝
 
Spring 2.0 技術手冊目錄
Spring 2.0 技術手冊目錄Spring 2.0 技術手冊目錄
Spring 2.0 技術手冊目錄
 
Spring 2.0 技術手冊再版序
Spring 2.0 技術手冊再版序Spring 2.0 技術手冊再版序
Spring 2.0 技術手冊再版序
 
Spring 2.0 技術手冊導讀
Spring 2.0 技術手冊導讀Spring 2.0 技術手冊導讀
Spring 2.0 技術手冊導讀
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
 
進階主題
進階主題進階主題
進階主題
 
Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型Java SE 8 技術手冊第 7 章 - 介面與多型
Java SE 8 技術手冊第 7 章 - 介面與多型
 
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMailServlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
Servlet & JSP 教學手冊第二版 - 第 11 章:簡介 JavaMail
 
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
Servlet & JSP 教學手冊第二版 - 第 9 章:整合資料庫
 
Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型Java SE 8 技術手冊第 6 章 - 繼承與多型
Java SE 8 技術手冊第 6 章 - 繼承與多型
 
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
Servlet & JSP 教學手冊第二版 - 第 8 章:自訂標籤
 
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
Servlet & JSP 教學手冊第二版 - 第 10 章:Web 容器安全管理
 
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
 
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
Servlet & JSP 教學手冊第二版 - 第 4 章:會話管理
 
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 ServletServlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版 - 第 2 章:撰寫與設定 Servlet
 
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
Servlet & JSP 教學手冊第二版 - 第 3 章:請求與回應
 
java8-patterns
java8-patternsjava8-patterns
java8-patterns
 

Semelhante a Spring 2.0 技術手冊第二章 - Spring 入門

Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导
yiditushe
 
Eclipse開發平台快速入門
Eclipse開發平台快速入門Eclipse開發平台快速入門
Eclipse開發平台快速入門
Luo Korth
 
Maven私服安装,Maven使用教程
Maven私服安装,Maven使用教程Maven私服安装,Maven使用教程
Maven私服安装,Maven使用教程
kangzj
 
Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建
donotbeevil
 
深入理解Andorid重难点
深入理解Andorid重难点深入理解Andorid重难点
深入理解Andorid重难点
Bin Shao
 
Java2新觀念教本投影片ch1
Java2新觀念教本投影片ch1Java2新觀念教本投影片ch1
Java2新觀念教本投影片ch1
5045033
 
第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置
yinmei1983
 
Maven in eclipse practices
Maven in eclipse practicesMaven in eclipse practices
Maven in eclipse practices
Pei-Tang Huang
 

Semelhante a Spring 2.0 技術手冊第二章 - Spring 入門 (20)

Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导Spring框架,技术详解及使用指导
Spring框架,技术详解及使用指导
 
SCJP ch02
SCJP ch02SCJP ch02
SCJP ch02
 
Eclipse開發平台快速入門
Eclipse開發平台快速入門Eclipse開發平台快速入門
Eclipse開發平台快速入門
 
Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解Spring4.x + hibernate4.x_配置详解
Spring4.x + hibernate4.x_配置详解
 
基于Ivy ant的java构建初探
基于Ivy ant的java构建初探基于Ivy ant的java构建初探
基于Ivy ant的java构建初探
 
啟動 Laravel 與環境設定
啟動 Laravel 與環境設定啟動 Laravel 與環境設定
啟動 Laravel 與環境設定
 
Hadoop开发者入门专刊
Hadoop开发者入门专刊Hadoop开发者入门专刊
Hadoop开发者入门专刊
 
Maven初级培训
Maven初级培训Maven初级培训
Maven初级培训
 
N bear
N bearN bear
N bear
 
Jsp
JspJsp
Jsp
 
Maven私服安装,Maven使用教程
Maven私服安装,Maven使用教程Maven私服安装,Maven使用教程
Maven私服安装,Maven使用教程
 
test
testtest
test
 
Liferay环境搭建
Liferay环境搭建Liferay环境搭建
Liferay环境搭建
 
Exodus2 大局观
Exodus2 大局观Exodus2 大局观
Exodus2 大局观
 
深入理解Andorid重难点
深入理解Andorid重难点深入理解Andorid重难点
深入理解Andorid重难点
 
Java2新觀念教本投影片ch1
Java2新觀念教本投影片ch1Java2新觀念教本投影片ch1
Java2新觀念教本投影片ch1
 
自由軟體鑄造場_20111023_Subversion版本控制系統之操作_曾義峰(ant)
自由軟體鑄造場_20111023_Subversion版本控制系統之操作_曾義峰(ant)自由軟體鑄造場_20111023_Subversion版本控制系統之操作_曾義峰(ant)
自由軟體鑄造場_20111023_Subversion版本控制系統之操作_曾義峰(ant)
 
第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置第一章 概述和Jdk的安装和配置
第一章 概述和Jdk的安装和配置
 
beidakejian
beidakejianbeidakejian
beidakejian
 
Maven in eclipse practices
Maven in eclipse practicesMaven in eclipse practices
Maven in eclipse practices
 

Mais de Justin Lin

Mais de Justin Lin (20)

Ch14 簡介 Spring Boot
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
 
Ch12 Spring 起步走
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
 
Ch11 簡介 JavaMail
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
 
Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
 
Ch09 整合資料庫
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
 
Ch08 自訂標籤
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
 
Ch07 使用 JSTL
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
 
Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
 
Ch04 會話管理
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
 
Ch03 請求與回應
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
 
Ch02 撰寫與設定 Servlet
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
 
CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
 
14. 進階主題
14. 進階主題14. 進階主題
14. 進階主題
 
13.並行、平行與非同步
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
 
12. 除錯、測試與效能
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
 
11. 常用內建模組
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
 
10. 資料永續與交換
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
 
9. 資料結構
9. 資料結構9. 資料結構
9. 資料結構
 
8. open() 與 io 模組
8. open() 與 io 模組8. open() 與 io 模組
8. open() 與 io 模組
 

Spring 2.0 技術手冊第二章 - Spring 入門

  • 1. 。能功本基些一的 識認並, Spring IDE Spring IDE 裝安中 在何如紹介將也中節章個這而,擇選之員人計設的 Eclipse 式程發開 用使數多是這,) Spring Development Environment, IDE (境環發開合整為作 Integrated 用使將中書本在 Eclipse 。係關賴依之件物 的紹介所章 第理管 Business 1 ,能 功 器 容 的 IoC 用 使 並,心 信 的 Spring 用 使 對 您 強 增 以,式 Spring 程 Spring個一第成完際實將,中節章個這在,的單簡當相是卻式程 Spring個 一 第 成 完 要 過 不,間 時 的 當 相 要 需 能 功 的 有所解瞭 Spring 要,) (架框式程 用應的位方全個是 A pplication framework Spring Spring 入門 2
  • 2. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) 2.1 第一個 Spring 程式 個一這,的單簡很是式程 個一第門入,架框式程用應個一為作 Spring 執、寫撰、定設行進 用使,載下案檔關相的 Spring 行進將中節小 Eclipse 。式程 Spring 個一第成完,行 2.1.1 下載、設定 Spring 至接連請, 是本版的新最 ,候時的書此寫撰 S pring 2.0 Spring 方官的 : 在 是 址 網,載 下 的 案 檔 行 進 站 網 http://springframework.org/ 圖 2.1 Spring 址網方官 面頁載下,面頁載下至入進以可,結鏈」 D ownloads「 邊左選點 的 Spring 至接連結鏈」 Framework 2.0 「個有會中 Download Sourceforge 2 2
  • 3. Chapter 2 Spring 門入 ( http://sourceforge.net/project/showfiles.php?group_id=73357&package _id=173644&release_id=452461 :) 圖 2.2 從 Sourceforge 載下 Spring 案檔關相 是個一,案檔載下個兩有供提上 Spring Sourceforge 在 spring-framework- 。 是個一, 2.0-with-dependencies.zip spring-framework-2.0.zip 、 、 、 些一了括包案檔載下的 with-dependencies ant j akarta-commons s truts 這要需也您果如,案檔 velocity 依相的案專 碼始原放開它其等 Java library 這載下站網屬專個各至別分再用不就此如,本版個這載下以可,案檔關相些 載 下要需只 則,案 檔關相 些這有經 已果如 ,案檔 些 spring-framework-2.0.zip 。案檔個這 檔擇選, 載下接直您議建 spring-framework-2.0-with-dependencies.zip 接最個一擇選以可,站網) (射鏡擇選要需會,後之結鏈載下的案 m irror 。 些 一 快較比 會 時 載 下 , 站 網 射鏡的 域 區 在 所 載 下 您 近 2 3
  • 4. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) 要需所時 用 使 是 就 下 錄 目 在,後 之 縮 壓 解 並 案 檔 載 下 zip dist Spring 是的中錄目 在則,本版 是 的載下 果 如 , 案 檔 關 相 的 with-dependencies lib 讀閱要需者或,件文 的 詢查要需果如,案檔依相的到用會能可 Spring API Spring 。件文關相到找中錄目 以可則,件文考參 docs 圖 2.3 spring-framework-2.0-with-dependencies 容內的 類的要需所能功的援支 dist 有所了括包 ,下錄目 在 s pring.jar Spring 到找下錄目 在以可則,心核 是只的要需果如。別 Spring dist/modules 的它其將再,援支架框子的它其 spring-core.jar 到用要需後日果如, Spring jar 、 如例,可即定設的 Classpath 至入 加案 檔 spring-aop.jar spring-webmvc.jar 。案檔 的 別個 入加要 需不是 處好, 案檔 個 這 用 使接直 常通。 等 spring.jar jar 在放是都案檔關相 的您設假邊這,境環的作操一統了為 spring C:workspacelibraryspring-framework-2.0 的 圖 考 參 可, 2.3 是境環發開合整的用使所, 是 的用使所外另。容內 JDK 5.0 進 Eclipse 3.2 站網方官 在 以 可, E clipse h ttp://www.eclipse.org/ 2 4
  • 5. 2 :示所圖下如,下錄目 在存 C:workspace 儲是案專而,稱名 SpringDemo 是 設 假 邊 這 , 稱 名取案 專 的 您 為 並 , 鈕 按 N ext 」 「下按,」 J ava Project 「擇選中塊方話對」 「在,後之目 N ew Project 項」 F ile/New/Project... 「的上單選 Eclipse 行 執 ,增新 的 案 專 行 進 先 後 之 Eclipse 行執請。 Eclipse 3.2 了載下經已您設假邊這,理管的) Classpath 如(源資種各行進便方以 ) I ntegrated Development Environment, IDE ( 境環發開合整用使配搭是好最,時式程寫撰架框式程用應用使在 2.1.2 準備 Spring 設計環境(使用 Eclipse) 。一之因原是也式程用應 Spring 發開來 Eclipse 擇 選 員 人 發 開 多 許 ,然 當 ,節 細 些 一 的 意 注要所時 Spring 寫撰到觸接以可是因原的 用 使。載 下 行 Eclipse 門入 Chapter 2 Spring
  • 6. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) 圖 2.4 在 Eclipse 建新中 SpringDemo 案專 2 6
  • 7. 2 7 式方的案檔建新中 Eclipse 在 2.5 圖 :示所 圖下如,作操行進樣這是都,案檔某建新到提若中節章各後以,案檔種各 增新鍵右鼠滑按接直,中錄目的定指上案專在以可,後之建新案專在 。下錄目 的 bin . class 案專在置放會 而,下錄目 的案專在置放會 設預,」 src . java folders C reate separate source and output 「 選,定設 擇 」 「 圖在以 的 P roject Layout 2.4 可這,置放開分案檔 . class 的好譯編跟碼式程始原 將議建邊這在 . java 門入 Chapter 2 Spring
  • 8. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) 言而體具(中之理管案專至入加 的關相 將須必,著接 Spring library 」 「上單選行執請,)中 .jar 至定設案檔 將是就 Classpath P roject/Properties ,」 「的上塊方話對」 「擇選,目項 P roperties for SpringDemo J ava Build Path :示所 圖如,」 「至籤標面頁換切並 L ibraries 2.6 圖 2.6 定設 library 「下按如例,案檔 的依相入加中面頁個這在以可 jar A dd External 的 JARS... 定設來未了為過不,源來的案檔 擇選可即,」 .jar Spring library 」 下 」 「 按請, 「 自中 訂 在以可您,見起便方 Eclipse U ser Library A dd Library... 」 「下按後」 「擇選中窗視」 「的來下接在,鈕按 A dd Library U ser Library N ext 在,窗視的 圖示顯會將著接,鈕按」 「下按並,鈕按 U ser Libraries... 2.7 」 「在請, 增新以可,鈕按」 「下按中當 N ew... User Library N ew User Library :鈕按」 「下按後」 「名取中窗視 S pring 2.0 Core OK 2 8
  • 9. Chapter 2 Spring 門入 圖 2.7 增新 User Librariy 、 將,鈕按」 「下按以可著接 Add JARs... spring-core.jar 的範示後稍是這,入加 spring-beans.jar 的依相及以, commons-logging.jar 及錄目 在以可,案檔 的需所式程 Spring .jar 個一第 dist/modules 定設來 用 使 要 想 若 外另, 案 檔 些 這 到 找 中 錄 目 lib/jakarta-commons Log4j : 的下錄目 l ogging 入加要需還則,息訊) (誌日 lib/log4j log4j-1.2.14.jar 圖 2.8 增新 Spring 2.0 Core Library 2
  • 10. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) 的訂自成完可即鈕按」 「下按,後果結的 圖如成完 2.8 OK User Library 「的 圖在要只則, 的 訂 自 入加要 需 若 後 之 , 增 新 之Library 2.6 J ava Build :可即」 Path 「擇選並,」 「擇選中」 A dd Library... U ser Library 圖 2.9 入加 User Library 2.1.3 撰寫第一個 Spring 程式 (件組個一第的您寫撰來 C omponent 的單簡個一是只它,) JavaBean , :呼招 聲 打 者 用 使 向 來 用 SpringDemo HelloBean.java package onlyfun.caterpillar; public class HelloBean { private String helloWord; public void setHelloWord(String helloWord) { this.helloWord = helloWord; } public String getHelloWord() { 2 1
  • 11. Chapter 2 Spring 門入 return helloWord; } } 強為 ( 語 呼 招 的 新 定 設 來 個這 setHelloWord() 過透以可您後稍 Setter 些這作來式程寫撰自親是不並過不,) 用使以所,字文是的入注調 Word 以 可 著 接,作 動 的 定 設 作 您 為 來 由 ,義 定 以 加 案 檔 態 組 在 是 而 ,事 Spring 件 物依 相 成 完 何 如 , 器 容 Bean 訴告 會 案 檔 義 定 , 案 檔 義 定 的 寫 撰 Spring 名取邊這如例,義定由自以可稱名案檔的檔義定 ,作動等入注係關的 B ean beans-config.xml : 為 SpringDemo beans-config.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="helloBean" class="onlyfun.caterpillar.HelloBean"> <property name="helloWord"> <value>Hello!Justin!</value> </property> </bean> </beans> 每為來 用使而,點節根為作 Bean 以是中檔義定 在 <beans> <bean> 以 可後稍 , 稱 名 別 識 的 例 實 定 設 以 用 性 屬 , 定 設 行 進 個 一 Bean " id" Bean 的 定指來用性屬 " id" ,例實的 得取來稱名的定指所 用使 Bean " class" Bean 稱名的 了定設 的籤標 <property> ,稱名別類 "helloWord" Setter 。值串字的入注將了定設上籤標 s etHelloWord 在並,) <value> ( 2 11
  • 12. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) : 式 程 範 示的單 簡 個 一 寫 撰 來 著 接 SpringDemo SpringDemo.java package onlyfun.caterpillar; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; public class SpringDemo { public static void main(String[] args) { Resource rs = new ClassPathResource("beans-config.xml"); BeanFactory factory = new XmlBeanFactory(rs); HelloBean hello = (HelloBean) factory.getBean("helloBean"); System.out.println(hello.getHelloWord()); } } 了作實別 類 org.springframework.core.io.ClassPathResource org.spring- framework.core.io.Resource 義定 的定指取讀下 從可,面介 Classpath Bean 定指要果如,檔 Bean 用使以可則,置位徑路對相或徑路對絕的檔義定 。 org.springframework.core.io.FileSystemResource 用 使 以 所 , 檔 義 定 是的 用 使 邊 這 於 由 XML org.springframework.beans. 了作實 factory.xml.XmlBeanFactory ,別類 XmlBeanFactory org.springframe- 立建並義定取讀來用,面介 work.beans.factory.xml.BeanFactory 。器容 的供提所 BeanFactory 是就,說來體具 B eanFactory ,例實 Spring IoC 的 ,能功之別類 1 的作實所中章 第同如就 BusinessFactory Spring 、立建以可,性特用通備具更但,子例作實個一的式模 BeanFactory Factory 是 2 12
  • 13. Chapter 2 Spring 門入 在, 是的 意 注要 。件 物的 態型 同不 理 管 Spring 1.2 ,後之 XmlBeanFactory 只 Resource 是像,件物的面介 作實 受 接 、 ClassPathResource FileSystemResource 、 。等 InputStreamResource 、 、 ServletContextResource UrlResource 由藉,能功器容 的 用使來度角的次層低較比從是這 Spring IoC 什是賴依的邊這,入注係關的賴依成完並,案檔態組取讀來 BeanFactory 介的 留 保 所 過透,件物 HelloBean 於依相例實的 String 是的指?麼 Setter 在死寫語呼招將是不而,入注賴依個這成完來 Setter injection 用使,面 HelloBean 。中 由藉以可,後之護維係關成完並定設態組的 BeanFactory Bean 取讀 用使果如。例實 getBean() 得取來稱名的 Bean 定指並法方 Bean 實 立建際實會才,時件物 要需正真在有只,話的 BeanFactory Bean Bean 。例實 立建就時 立建始 開 一 在 是 不 而 , 例 BeanFactory Bean 式程 行 執 看 觀 便 方 了 為,息 訊 誌 日 多 許 示 顯 下 台 控 主 在 會 設 預 Spring 下 的 案 專 在 以 可此 因 , 級 層 示 顯 的 息 訊誌 日 定 設 以 可 , 果 結 的 Classpath log4j.properties :示所下如容內,案檔 立建 SpringDemo log4j.properties log4j.rootLogger=WARN, stdout log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n 會 才, 息 訊) (示 警 有 只 定 設 級 層 示 顯 的 誌 日 , 中 案 檔 個 這 在 W ARN 相 之 案 檔 各 的 寫 撰 所 上 以 ,中 s tdout 在 。 中 之) (出 輸 準 標 在 示 顯 Eclipse :示所圖下如置位對 2 13
  • 14. 2 14 。定設案專成完構結案檔的案專斷判動自會 Eclipse ,稱名的同相 SpringDemo 與取稱名案專,時案專 啟開 Eclipse 在後然,性屬讀唯除解,錄目 至製複之將以可,案 workspace 專 SpringDemo 的應對相到找下錄目 的碟光在以可 examples 。 碼 式程行 一 何 任 的 件 組 改 修用不 而 , 可 即 案 檔 態 組 改修要只,係關賴依的間之件物些一變改要想果如,著味意就,看來度角 的 用 通 從, HelloBean.java 改 修 用 不,了 以 可 就 定 設 的 中 性 屬 "helloWord" 中 beans-config.xml 改更要只則,語呼招變改要想天今果如 果結行執式程 Spring 個一第 2.11 圖 :果結的後之行運際實看看來」 Application R un/Run As/Java 「 上單選行執,後案檔 的 啟開在以可 SpringDemo.java 式程 Spring 個一第 2.10 圖 ) – http://openhome.cc 良信林(冊手術技 Spring 2.0
  • 15. Chapter 2 Spring 門入 2.1.4 撰寫第二個 Spring 程式 了您讓是的目要主,式程的單簡很是式程 個一第的寫撰所前先 Spring 示所章 第下一顧回來下接。驟步的需所式程 的單簡個一成完,解 Spring 1 讀責負,別類 Business 個一寫撰行自是時當,式程 的範 BusinessFactory 功的供提所 用改以可邊這在,係關賴依成完並件物成生、檔義定取 Spring 。 BeanFactory 代取 以,能 BusinessFactory 程先首,出列併一案檔關相的需所將邊這在,容內案專現呈整完了為 :面介 的象抽於賴依式 IDeviceWriter SpringDemo2 IDeviceWriter.java package onlyfun.caterpillar; public interface IDeviceWriter { public void saveToDevice(); } 個有 FloppyWriter 了現實 IDeviceWriter :示所下如,面介 SpringDemo2 FloppyWriter.java package onlyfun.caterpillar; public class FloppyWriter implements IDeviceWriter { public void saveToDevice() { System.out.println(" …機碟軟至存儲 "); } } 設假 的象抽於賴依它,求需的料資存儲個有別類 Business IDeviceWriter 實的 於 賴 依,為 行 的 料 資 存 儲 上 際 實 , 面 介IDeviceWriter ,件物作 B usiness :下如作實別類 2 1
  • 16. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) SpringDemo2 Business.java package onlyfun.caterpillar; public class Business { private IDeviceWriter writer; public void setDeviceWriter(IDeviceWriter writer) { this.writer = writer; } public IDeviceWriter getDeviceWriter() { return writer; } public void save() { if(writer == null) { throw new RuntimeException("DeviceWriter needed..."); } writer.saveToDevice(); } } 個一定設並,別類 1 個一寫撰行自是章 第在 BusinessFactory 所 用使 接 直 以 可 在現, 定 設 關 相 的 訊 資 別 類 行 進 config.properties Spring :示所下如檔義定 定設以可,能功器容 的供提 IoC Bean SpringDemo2 beans-config.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="writer" class="onlyfun.caterpillar.FloppyWriter"/> <bean id="business" class="onlyfun.caterpillar.Business"> <property name="deviceWriter"> <ref bean="writer"/> 2 16
  • 17. Chapter 2 Spring 門入 </property> </bean> </beans> 生產需只式程於由,訊資的 個兩了定設中檔義定在 Bean FloppyWriter 一定設籤標 用 使 接 直 以 所, 它 給 係 關 賴 依 的 何 任 定 設 用 不 而, 例 實 < bean> 考參要。考參例實的 " id" writer Bean給定設之將並,例實 的 為 個 Business 屬 IoC 其定指並,籤標 用使以可,例實 的定設已中器容 Bean < ref> " bean" 之件物個兩立建動自會器容 此如,稱名 之例實 的賴依所為性 Bean " id" IoC 。係關賴依的間 之,可 即 同 相 案 專 個 一 前 與 容 內 ,案 檔 log4j.properties 立建以可還您 範 示 個 一 立 建 請 ,後 最 。 定 設 的 明說複 重 再 不 將 例 範 的 後 log4j.properties :下如式程 SpringDemo2 SpringDemo.java package onlyfun.caterpillar; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; public class SpringDemo { public static void main(String[] args) { Resource rs = new ClassPathResource("beans-config.xml"); BeanFactory factory = new XmlBeanFactory(rs); Business business = (Business) factory.getBean("business"); business.save(); } } 2 17
  • 18. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) : 示 所 下 如 面 畫 考參個 一 的 果 結 行 執 式 程 圖 2.12 個二第 Spring 果結行執式程 至存儲要是而,機碟軟至存儲料資將再不別類 Business 天今設假 Usb ,面介 作實別類 個一讓以可則,上碟硬動行 UsbDiskWriter IDeviceWriter 為性屬 的Bean 個這 改修中檔義定 在並 "writer" Bean "class" 儲的賴依所層底別類 UsbDiskWriter ,式程行執新重此如,別類 B usiness 對用不而,為行存儲的義定所 為換替會就,為行存 UsbDiskWriter Business 。改修的何任出作 2.1.5 Spring 2.0 的 XML 設定 過用 使 經 曾 您 果 如 Spring 1.2 這 在 , 到 現 發 經 已 許也 , 本 版 的 前 之 或 ,中檔義定 的範示所邊 XML X ML : 於基是法語定設 XML Schema <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> ... </beans> 用使要想果如 建,定設籤標 Spring 2.0 與能 功 新 些 一 的 供 提 所 XML 於基用採議 XML Schema 用採議建也隊團發開 ,式方定設的 S pring XML 合結, Schema Spring 2.0 簡更容 內 的 檔 定 設 讓 以 可 , 定 設 籤 標 的 新 XML 。取讀易容且潔 2 18
  • 19. Chapter 2 Spring 門入 於 基用採 法 無 或 算 打 不 果 如 XML Schema ,式方定設的 S pring 2.0 中 :式方定設的 於基供提也 DTD <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd"> <beans> ... </beans> 用 使 要 想若如 例 , 的 勵 鼓 被 是 式 方 的 XML Schema 於基 Spring 2.0 新 < util> : 定 設 下 如 要只 則 , 定 設 籤 標 的 <?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:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd"> ... </beans> 於對 Spring 2.0 會將 , 中 節 章 的 當 適 後往在 , 定 設 籤 標 些 一 的 增 新 所 。明說以加別分 2 1
  • 20. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) 2.2 安裝、使用 Spring IDE 用使。」器其利先必、事其善欲工「:句一話老是仍免不 Eclipse 並 在以可,好更以可但,合組的錯不個是式程用應發開來 Spring 合結 Eclipse 高更有時式程用應發開 用使在您讓, Spring IDE 的 plug-in 裝安中 Spring 。 用使 與 裝 安 何 如 紹 介 來將中 節 小 個 這 , 率 效 的 Spring IDE 2.2.1 安裝 Spring IDE 開在供提可,Spring IDE 的薦推所站網方官 Spring 是 Eclipse plug-in 與 看 觀 式 方 的 化視可 以 、 證 驗 行 進 檔 義 定 對 時 Spring Bean 發 Bean Bean 裝安中 於 何如下 一 紹 介 來 邊 這 在 ,能功 等 係 關 賴 依 的 間 之 Eclipse Spring IDE 。 裝安併一以可,前之裝安 的 Spring IDE 行進在 Graphical Editing 是 就 也, Framework 示顯 以礎基為作它用使 Spring IDE 為 因, Bean Graph 行執請先首。係關賴依的間之 與 示顯式方的化形圖以 Bean Bean Eclipse 「擇選後然,」 「的上單選 H elp/Software updates/Find and Install S earch for :示所圖下如,鈕按」 「下按再,」 new features to install N ext 2 2
  • 21. Chapter 2 Spring 門入 圖 2.13 的用可尋搜 Plug-in 「的來下接在 I nstall 「下按,中窗視」 N ew Remote Site... 新,鈕按」 的 增 Spring IDE Update Site :是址網, : h ttp://springide.org/updatesite/ 圖 2.14 增新 Spring IDE 的 Update Site 「的增新擇選請,後之 Spring IDE 的 增新在 Update Site S pring IDE 」 裝安便以,」 「擇選併一且,目項 C allisto Discovery Site Graphical Editing 「擇 選 要 需 還 後 鈕 按 」 「 下 按 , Framework F inish U pdate Site Mirrors ,」 2 21
  • 22. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) 行進會著接,」 「下按後」 「擇選請 C allisto Discovery Site OK plug-in 的 為本版的 , 時節章 個 這 寫 撰 在 。 尋 搜 G raphical Editing Framework 3.2.1 , :裝安行進以目項擇選圖下如請, 為本版的新最 Spring IDE 1.3.6 圖 2.15 裝安 Graphical Editing Framework 與 Spring IDE 成完步一步一,引指的靈精裝安依請來下接 Graphical Editing 動啟新重求要會後成完裝安,裝安與載下的 Framework Spring IDE 與 」 Eclipse 「的 上 單 選 行 執 以 可 , 後 之 動 啟 新 重 , H elp/About Eclipse SDK 與 看看來」 P lug-in Details 「下按並,令指 Graphical Editing Framework Spring IDE 。成完裝安否是 2 22
  • 23. Chapter 2 Spring 門入 圖 2.16 視檢 Graphical Editing Framework 與 Spring IDE 成完裝安否是 2.2.2 使用 Spring IDE 入加要,範示作來 的發開所前先以SpringDemo Spring IDE 支能功的 「 執,鍵右鼠滑按上案專 行 SpringDemo 在請,援 」 A dd Spring Project Nature :示所圖下如,令指 圖 2.17 入加上案專在 Spring IDE 援支 2 23
  • 24. 2 24 : 明說與 示 標 誤 錯 現 出 會 則,稱 名 別 類 的 誤 錯 了 入 鍵時定設若如例,確正否是稱名別類的定設所證驗助協以可還,外之確正 定設否是等 <beans> 如籤標的中案檔 證驗以可了除 XML Spring IDE 理管證驗入納檔義定 Bean 將 2.18 圖 :檔義定 Bean A dd... 的 理 管 證 驗 行 進 要 入 加 , 鈕 按」 「按 中 籤 頁」 「在 C onfig Files ,目項」 S pring 「擇選後然,令指」 P roject/Properties 「的上列單選行執須 必 ,能功 個 這 有 擁 了 為 , 確正定 設 否 是 容 內 的 檔 義 定 查檢助協以可 Bean S pring IDE S 。樣字 個一現出會上示圖案專,後援支的 入加 Spring IDE ) – http://openhome.cc 良信林(冊手術技 Spring 2.0
  • 25. Chapter 2 Spring 門入 圖 2.19 Spring IDE 出驗檢可 Bean 定設誤錯的上檔義定 換切以可 Eclipse ,現出有沒果如(」 「至籤頁的方下右 S pring Beans 「上單選行執請 「擇選並,」 W indow/Show View/Other... S pring/Spring ,) 」 Beans S pring IDE 定 示 顯 式 方 的 化 視 可以,中 籤 頁 個 這 在 以 可 Bean :要摘點節的中檔義 圖 2.20 Spring IDE 的 Beans 示顯要摘點節 「行執鍵右鼠滑按上檔義定 在以可 Bean ,令指」 S how Graph S pring IDE 的 中 檔 義 定 示 顯,式 方 的 化 形 圖 以 會 Bean Bean 與 及 以,義 定 Bean Bean :係關賴依的間之 2 2
  • 26. Spring 2.0 良信林(冊手術技 – http://openhome.cc ) 圖 2.21 示顯 Bean Graph 的寫撰所前先以 SpringDemo2 ,例為案專 S pring IDE 圖如示顯會將 2.22 : 的 Bean Graph 圖 2.22 Spring IDE 化視可的 Bean 理管 2 26
  • 27. 2 27 Spring 個一第的您 2.23 圖 。式方定設與能功之器容 的 IoC Spring 解了入深,式程 Spring 個 一 第 的 節 章 個 這續 接 將 , 始 開 節 章 個 一 下在先首,能功個一每的 Spring 索探的步一步一要就來下接但,的單簡是 Spring 門入,用使門入的 Spring IDE 了紹介也並,式程用應 發開中 Spring Eclipse 在何如解了您讓,式程 Spring 的 單 簡個兩 了 範 示 中 節 小 個 這 2.3 接下來的主題 門入 Chapter 2 Spring