spring容器被設計成可擴充套件的,可以通過plugin各種整合介面實現來進行擴充套件。
用beanpostporcesser定製bean:
此介面中定義了幾個**方法,實現該介面可實現自定義的例項化邏輯、依賴解析邏輯等。如果配置了多個beanpostprocesser,可以通過「order」屬性控制beanpostprocesser的執行次序(僅當beanpostprocesser實現了ordered介面時才可以設定此屬性)。
注意:beanpostprocesser可以對bean的多個例項進行操作,也就是說,spring ioc容器會為你例項化bean,然後使用beanpostprocesser處理,beanpostprocesser的作用域是容器級的,只和所在容器有關,如果你在容器中定義了beanpostprocesser,那麼只對此容器中的bean進行後置處理,不會對另外乙個容器中的bean進行處理。
介面中有兩個**方法可以呼叫,當乙個該類的實現類被註冊為容器的後置處理器後,對於由此容器建立的每個bean例項在初始化呼叫前,後置處理器都會從容器獲取乙個**,後置處理器可以隨意對這個例項執行它所期望的動作,包括完全忽略此**。通常用來檢查標誌介面,或者做一些將乙個bean包裝成乙個proxy的事情,一些spring aop的底層處理也是通過bean後置處理器來執行**包裝邏輯。
例如 :
configurablebeanfactory factory = new xmlbeanfactory(...);
mybeanpostprocesser postprocesser = new mybeanpostprocesser();
factory.addpostprocesser(postprocesser);
Spring2 5 註解介紹
註解介紹 controller service autowired requestparam modelattribute cacheable cacheflush resource postconstruct predestroy repository component 不推薦使用 scope ...
Spring2 5那些事之 AOP
在日常開發中經常需要在 中加入一些記錄使用者操作日誌的log語句,比如誰在什麼時間做了什麼操作,等等。把這些對於開發人員開說無關痛癢的 寫死在業務方法中實在不是一件很舒服的事情,於是aop應運而生。spring對aop的支援有以下4種情況 1.基於 的aop 2.aspectj 3.純pojo 4....
spring2 5配置定時任務
3 第乙個bean,autostartup用來設定定時任務是否自啟動,triggers用來設定有哪些定時任務。triggers的list中可以放置多個,通過其他bean的id作為引用的標識。第二個bean,jobdetail設定該定時任務要執行什麼操作,cronexpression設定定時策略。第三...