Spring Custom NamespaceHandler
自從接觸了 Spring 之後,發現他是一個很好玩的東西,尤其 IoC 與 AOP 的功能上,真的可以玩到半夜都睡不著覺!!
最近突發奇想,想要把 Domain Object (Model) 與 Service 透過 Annotation 綁的更緊一點,例如:
@EntityMeta(serviceClass = MyEntityService.class) public class MyEntity implements IEntity<Long> { private Long id; // ... } public interface MyEntityService extends EntityService<MyEntity, Long> { }
偶後就可以這樣搞:
MyEntityService service = EntityUtils.getEntityService(myEntity); // ....
如果這樣做的話,就可把一些常用的功能抽離出來,而不用每個案子都在寫相同無趣的程式碼。
不過,要解決這個問題的話,必須要讓 Spring IoC Container 啟動時,能自動 Scan 我定義的 Annotation。我知道可以透過 ClassPathScanningCandidateComponentProvider 來實作,但這玩意的最大問題,他必須在 Spring Container 啟動後才能 Work,所以解決不了我的問題。
今日在想其他 Base on Spring 的 Module 怎麼實作的,後來想到可以透過 Spring 的設定檔中 Namespace 來解決這個問題。翻了一些資料後,發現了「Authoring Custom Namespaces in Spring 2.0」這篇文章,雖然有點久,但也蠻有參考的價值,所以先收錄下來以後再慢慢吸收。
反正,無聊咩!!
這篇內容的 Trackback 網址:
http://www.cdchen.idv.tw/trackback/1075
- cdchen 的 BLOG
- 如果想要發表回應,請先登入 或 註冊。