CGLIB
常常一樣東西還沒學起來,就趕著去學另外一樣。然後不管是專案或是產品,藍圖一建構完也幾乎被視同完成實作。連著兩個專案都是如此,所造成的後遺症是自信心漸失,症狀是學習力不集中,忘東西又特別快。幸虧還有以前踹過的sample,再重新學Spring,才發現它不像iBATIS只需一個jar檔,至少要import以下的Jar:
spring.jar:核心檔,不用多說。
common-logging:spring.jar有引用的日誌處理檔。
cglib-nodep-2.1_3.jar:這個就好玩了,以前只知它和AOP有關,不過發現它應該也是挺好玩的。
cglib全名是Code Generator Library,nodep意指No Dependence(不用像spring.jar還得依賴common-logging.jar),事實上cglib也依附ASM套件,是關於Java ClassLoader的,這是另一個重點了。
 
ApplicationContext與BeanFactory之區分
ApplicationContext和BeanFacotry相比,提供了更多的擴展功能,但其主要區別在於
(1)主要是後者是延遲載入,如果Bean的某一個屬性沒有注入,BeanFacotry載入後,直至第一次使用調用getBean方法才會拋出異常;而ApplicationContext則在初始化自身是檢驗,這樣有利於檢查所依賴屬性是否注入;所以通常情況下我們選擇使用ApplicationContext。
(2)後者定義初始化(InitializingBean, 方法afterPropertiesSet)與回收(DisposableBean, 方法destroy)的介面,不過後者在bean設為null時,並未觸發destroy,還是需要BeanFacotry的destroyBean("bean-name", instance)才會執行到destroy。(這有一個好玩的地方,由ApplicationContext取得的Bean可以由BeanFactory的destroyBean去銷毀。
 
SpringIDE的config.xml無法使用OpenGraph功能
打開.springBeans檔案將config檔名置入<configs>標籤內,如下,再按F5 Refresh就可以了:
<configs>
     <config>config.xml</config>
</configs>
 
Null值的注入
<value>null</value> --> "null"字串
<null/>                      --> null
arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()