Changes between Version 20 and Version 21 of waue/2011/spring


Ignore:
Timestamp:
Aug 26, 2011, 4:50:38 PM (13 years ago)
Author:
waue
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • waue/2011/spring

    v20 v21  
    140140IoC 在容器的角度,可以用這麼一句好萊塢名言來代表:"Don't call me, I'll call you." 以程式的術語來說的話,就是「不要向容器要求您所需要的(物件)資源,容器會自動將這些物件給您!」。IoC 要求的是容器不侵入應用程式本身,應用程式本身提供好介面,容器可以透過這些介面將所需的資源注至至程式中,應用程式不向容器主動要求資源,故而不會依賴於容器的元件,應用程式本身不會意識到正被容器使用,可以隨時從容器中脫離轉移而不用作任何的修改,而這個特性正是一些業務邏輯中間件最需要的。
    141141
    142 == 第一支程式:SpringDemo ==
     142= 第一支程式:SpringDemo =
    143143
    144144 * HelloBean.java
     
    211211ApplicationContext的基本功能與BeanFactory很相似,它也負責讀取Bean定義檔,維護Bean之間的關係等,然而ApplicationContext提供的一個應用程式所需的更完整的框架功能:
    212212
    213  * ApplicationContext提供取得資源檔案更方便的方法。
    214  * ApplicationContext提供文字訊息解析的方法,並支援國際化(Internationalization, I18N)訊息。
    215  * ApplicationContext可以發佈事件,對事件感興趣的Bean可以接收到這些事件。
     213 * 提供取得資源檔案更方便的方法。
     214 * 提供文字訊息解析的方法,並支援國際化(Internationalization, I18N)訊息。
     215 * 可以發佈事件,對事件感興趣的Bean可以接收到這些事件。
    216216
    217217
    218218Rod Johnson建議使用ApplicationContext來取代BeanFactory,在許多實作ApplicationContext的類別中,最常使用的大概是以下三個:
    219219
    220  * FileSystemXmlApplicationContext
     220 * !FileSystemXmlApplicationContext
    221221   * 可指定XML定義檔的相對路徑或絕對路徑來讀取定義檔。
    222  * ClassPathXmlApplicationContext
     222 * !ClassPathXmlApplicationContext
    223223   * 從Classpath中來讀取XML定義檔。
    224  * XmlWebApplicationContext
     224 * !XmlWebApplicationContext
    225225   * 在Web應用程式中的檔案架構中讀取定義檔。
    226226
    227227
    228  * SpringDemo.java
     228 * 因此 SpringDemo.java 變成如下:
    229229
    230230{{{
     
    249249
    250250
    251  == bean 間的引用 ==
     251 == 程式基本架構 ==
     252
     253簡化以上的寫法, bean , xml , main java 間的關係簡化如下程式碼。
     254
     255並注意以下 兩個 bean 間引用的關係 (BBean , dateBean )
    252256
    253257 *  BBean.java
     
    334338}}}
    335339
     340
     341
     342
     343
     344
     345
     346
     347
     348
     349
     350
     351
     352
    336353 === 自動綁定 ===
    337354[http://caterpillar.onlyfun.net/Gossip/SpringGossip/AutoWiring.html autowire (詳細)] 測試後not work,也許與Spring 版本有關