jBeanBox2.4.8 釋出,IOC/AOP 工具,核心重寫,效能提高
jBeanBox 2.4.8版本釋出
主要更新內容:
1. 核心完全重寫了一遍,更精簡,架構更合理。所有註解完成的注入,都可以找到相應的Java方法來完成。
2. 新增getInstance(Class<T>)方法,與getbean()方法的區別在於getInstance返回的型別是與T同類型,而getBean()方法則不一定。
3. BeanBox的create方法和config方法增加可選Caller物件引數,用於執行期載入其它物件及迴圈依賴檢測。
4. 添加了部分JSR330、JSR350、Spring註解的支援,以儘量相容已有的配置。
5. 效能加速,原型(非單例)建立速度比上版提速十倍以上,目前原型建立的速度是Guice的二分之一,Spring的45倍。
6. 刪除多餘的尋找BeanBox配置的方式,新增bind方法繫結方法,相當於手工給Bean賦予ID。
7. AOP功能簡化,並採用方法、Bean、上下文三級AOP配置方式,新增@AOP註解,刪除@TX註解。
因為jBeanBox是一個微型工具,所以順便也將它的內容介紹貼在這裡:
jBeanBox是一個微形但功能較齊全的IOC/">IOC/AOP工具,除了引入的第三方庫之外,它的核心只有十多個類,原始碼只有1500行左右。它運用了“Box”程式設計模式,利用純粹的Java類作為配置。jBeanBox運行於JDK1.6或以上。
jBeanBox的開發目的是要克服其它IOC/AOP工具的一些問題:
-
Spring: 原始碼臃腫,Java方式的配置不靈活,在動態配置、配置的繼承上有問題、啟動慢、非單例模式時效能極差。
-
Guice: 原始碼略臃腫(200個類),使用不太方便,對Bean的生命週期支援不好。
-
Feather:原始碼極簡(幾百行),但功能不全,只是一個DI工具,不支援AOP。
-
Dagger: 原始碼略臃腫(300個類),編譯期靜態注入,使用略不便,不支援AOP。
-
Genie: 這是ActFramework的核心,只是DI工具,不支援AOP。
如何在專案中使用jBeanBox?
手工下載jbeanbox-2.4.8.jar放到專案的類目錄,或在pom.xml中加入以下配置:
<dependency> <groupId>com.github.drinkjava2</groupId> <artifactId>jbeanbox</artifactId> <version>2.4.8</version> <!--或Maven最新版--> </dependency>
jBeanBox不依賴於任何第三方庫,為避免包衝突,它將用到的CGLIB、ASM等第三方庫以原始碼內嵌方式包含在專案中。 jBeanBox的jar包尺寸較大,約為750K, 如果用不到AOP功能,可以只使用它的DI核心,稱為"jBeanBoxDI", 只有49k大小,將上面artifactId中的jbeanbox改成jbeanboxdi即可。jBeanBoxDI專案詳見jbeanboxdi子目錄。
更多關於jBeanBox的用法還可以在jSqlBox專案中看到它的運用(資料來源的配置、宣告式事務示例等)。
jBeanBox碼雲主頁:ofollow,noindex" target="_blank">https://gitee.com/drinkjava2/jBeanBox