close
Warning:
Can't synchronize with repository "(default)" (Unsupported version control system "svn": /usr/lib/python2.7/dist-packages/libsvn/_repos.so: failed to map segment from shared object: Cannot allocate memory). Look in the Trac log for more information.
- Timestamp:
-
Aug 26, 2011, 4:50:38 PM (14 years ago)
- Author:
-
waue
- Comment:
-
--
Legend:
- Unmodified
- Added
- Removed
- Modified
-
v20
|
v21
|
|
140 | 140 | IoC 在容器的角度,可以用這麼一句好萊塢名言來代表:"Don't call me, I'll call you." 以程式的術語來說的話,就是「不要向容器要求您所需要的(物件)資源,容器會自動將這些物件給您!」。IoC 要求的是容器不侵入應用程式本身,應用程式本身提供好介面,容器可以透過這些介面將所需的資源注至至程式中,應用程式不向容器主動要求資源,故而不會依賴於容器的元件,應用程式本身不會意識到正被容器使用,可以隨時從容器中脫離轉移而不用作任何的修改,而這個特性正是一些業務邏輯中間件最需要的。 |
141 | 141 | |
142 | | == 第一支程式:SpringDemo == |
| 142 | = 第一支程式:SpringDemo = |
143 | 143 | |
144 | 144 | * HelloBean.java |
… |
… |
|
211 | 211 | ApplicationContext的基本功能與BeanFactory很相似,它也負責讀取Bean定義檔,維護Bean之間的關係等,然而ApplicationContext提供的一個應用程式所需的更完整的框架功能: |
212 | 212 | |
213 | | * ApplicationContext提供取得資源檔案更方便的方法。 |
214 | | * ApplicationContext提供文字訊息解析的方法,並支援國際化(Internationalization, I18N)訊息。 |
215 | | * ApplicationContext可以發佈事件,對事件感興趣的Bean可以接收到這些事件。 |
| 213 | * 提供取得資源檔案更方便的方法。 |
| 214 | * 提供文字訊息解析的方法,並支援國際化(Internationalization, I18N)訊息。 |
| 215 | * 可以發佈事件,對事件感興趣的Bean可以接收到這些事件。 |
216 | 216 | |
217 | 217 | |
218 | 218 | Rod Johnson建議使用ApplicationContext來取代BeanFactory,在許多實作ApplicationContext的類別中,最常使用的大概是以下三個: |
219 | 219 | |
220 | | * FileSystemXmlApplicationContext |
| 220 | * !FileSystemXmlApplicationContext |
221 | 221 | * 可指定XML定義檔的相對路徑或絕對路徑來讀取定義檔。 |
222 | | * ClassPathXmlApplicationContext |
| 222 | * !ClassPathXmlApplicationContext |
223 | 223 | * 從Classpath中來讀取XML定義檔。 |
224 | | * XmlWebApplicationContext |
| 224 | * !XmlWebApplicationContext |
225 | 225 | * 在Web應用程式中的檔案架構中讀取定義檔。 |
226 | 226 | |
227 | 227 | |
228 | | * SpringDemo.java |
| 228 | * 因此 SpringDemo.java 變成如下: |
229 | 229 | |
230 | 230 | {{{ |
… |
… |
|
249 | 249 | |
250 | 250 | |
251 | | == bean 間的引用 == |
| 251 | == 程式基本架構 == |
| 252 | |
| 253 | 簡化以上的寫法, bean , xml , main java 間的關係簡化如下程式碼。 |
| 254 | |
| 255 | 並注意以下 兩個 bean 間引用的關係 (BBean , dateBean ) |
252 | 256 | |
253 | 257 | * BBean.java |
… |
… |
|
334 | 338 | }}} |
335 | 339 | |
| 340 | |
| 341 | |
| 342 | |
| 343 | |
| 344 | |
| 345 | |
| 346 | |
| 347 | |
| 348 | |
| 349 | |
| 350 | |
| 351 | |
| 352 | |
336 | 353 | === 自動綁定 === |
337 | 354 | [http://caterpillar.onlyfun.net/Gossip/SpringGossip/AutoWiring.html autowire (詳細)] 測試後not work,也許與Spring 版本有關 |