個人心得
spring的DI就是 靠JAVA反射到指定的實體類中調用該類中的SET方法注入
會根據property 的name屬性反射的相應的類中找SET方法
spring對AOP的支持(采用Annotation的方式)
1、spring依賴庫
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar
* SPRING_HOME/lib/aspectj/*.jar
2、采用Aspect定義切面
2、在Aspect定義Pointcut和Advice
4、啟用AspectJ對Annotation的支持并且將Aspect類和目標對象配置到Ioc容器中
注意:在這種方法定義中,切入點的方法是不被執行的,它存在的目的僅僅是為了重用切入點
即Advice中通過方法名引用這個切人點
AOP:
* Cross cutting concern
* Aspect
* Advice
* Pointcut
* Joinpoint
* Weave
* Target Object
* Proxy
* Introduction
spring的普通屬性注入
參見:spring文檔3.3章節
什么是屬性編輯器,作用?
* 自定義屬性編輯器,spring配置文件中的字符串轉換成相應的對象進行注入
spring已經有內置的屬性編輯器,我們可以根據需求自己定義屬性編輯器
* 如何定義屬性編輯器?
* 繼承PropertyEditorSupport類,覆寫setAsText()方法,參見:UtilDatePropertyEditor.java
* 將屬性編輯器注冊到spring中,參見:applicationContext-editor.xml
依賴對象的注入方式,可以采用:
* ref屬性
* <ref>標簽
* 內部<bean>來定義
如何將公共的注入定義描述出來?
* 通過<bean>標簽定義公共的屬性,指定abstract=true
* 具有相同屬性的類在<bean>標簽中指定其parent屬性
參見:applicationContext-other.xml