Google Guice 媲美Spring的輕量級框架
Guice,一個由Google內部自主研發的類似Spring的輕量級框架,他對DI(Dependency Injection)做了很充分的擴展與深入,通過使用Guice,你可提升自己對DI的理解。
Guice讀音:juice
Guice is a lightweight dependency injection framework for java
Lightweight:代碼少、易維護、性能優異
Spring的不足時用過的人都多少了解的,配置過於龐大,複雜項目的配置可以說是一件令人頭痛的事情。
而Guice取消了xml,取消了Bean,甚至沒有了getter、setter方法,使用Constructor來注入,且對泛型具備原生支持,是一個專註於Dependency Injection的開源框架
我通過借鑒Hello World案例來講解Guice,從一個控制台輸出的Hello World,分解為將指定內容輸出到指定目標,到web Hello World,到AOP切面監控,來分布講解Guice的輕量級特性。
注入對於大多數框架來說都是必要的,只有這樣的功能,才能具備擴展性,Gucie具備構造函數注入及成員變數,而成員變數的注入也適合對Guice進行單元測試,當然,對於實例參數的final,使用構造函數注入後,我們還需要注意其生命周期,類似Session/Cache等對於項目來說其生命周期是單例的還是針對性而言的,我們都知道每個Request,將對應一個Session,那麼我們就需要和Guice說明這些注入參數的生命周期,這也是DI的特性。
當然,有關於介面還有抽象類的一些案例,大家可以在我的Demo中看到多出引用。
Guice更好的一點是它的綁定還有Module,通過簡單的bind來綁定介面類的具體實現,通過並列或嵌套或覆蓋來執行Module。且只有在你需要注入時,Guice才會去運行啟動對應的實例。
當然,目前各類框架盛行的時代,多了一個Guice大家也是頭疼說究竟需要怎麼用,這裡大致可能要佛系一點了
佛系三連
【都行】
ok
【可以】
fine
【沒關係】
anyway
不能說Guice能完全替代Spring,其實它是可以和Spring一起同時開發使用的,我在Demo中的最後一個分支也引用了SpringBoot和Guice一起協作開發,由SpringBoot提供Rest Controller,Guice搭建業務邏輯,同時你也可以根據自己的需要引入其他組件。
框架都是有舍有得的,沒有一個框架是十全十美的。
更多Guice代碼教程
Github
UncleCatMySelf/GuiceTeachDemo
2018
※致敬霍金,傳奇又令人敬仰的天才
※LINE 將推出DApp 平台 深耕區塊鏈領域
TAG:全球大搜羅 |