jBeanBox2.4.8 发布,IOC/AOP 工具,内核重写,性能提高

栏目: Java · 发布时间: 7年前

内容简介:主要更新内容:1. 内核完全重写了一遍,更精简,架构更合理。所有注解完成的注入,都可以找到相应的Java方法来完成。2. 新增getInstance(Class<T>)方法,与getbean()方法的区别在于getInstance返回的类型是与T同类型,而getBean()方法则不一定。

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/AOP工具,除了引入的第三方库之外,它的核心只有十多个类,源码只有1500行左右。它运用了“Box”编程模式,利用纯粹的Java类作为配置。jBeanBox运行于JDK1.6或以上。

jBeanBox的开发目的是要克服其它IOC/AOP工具的一些问题:

  1. Spring: 源码臃肿,Java方式的配置不灵活,在动态配置、配置的继承上有问题、启动慢、非单例模式时性能极差。

  2. Guice: 源码略臃肿(200个类),使用不太方便,对Bean的生命周期支持不好。

  3. Feather:源码极简(几百行),但功能不全,只是一个DI工具,不支持AOP。

  4. Dagger: 源码略臃肿(300个类),编译期静态注入,使用略不便,不支持AOP。

  5. 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码云主页: https://gitee.com/drinkjava2/jBeanBox


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

以匠心,致设计:网易 UEDC 用户体验设计

以匠心,致设计:网易 UEDC 用户体验设计

网易用户体验设计中心 / 电子工业出版社 / 2018-8 / 95.00元

为什么网易云音乐的体验流畅细腻、富有温度?为什么网易严选App的UI设计让人感到温馨、舒适?为什么网易蜗牛读书App的界面设计让用户爱不释手…… 《以匠心,致设计:网易 UEDC 用户体验设计》是网易用户体验设计团队对自身过去的设计思考的精心总结,最大程度还原了网易产品背后的设计故事,内容涵盖设计基础、设计实践、方法思考、成长指南四章,借助网易产品设计的实际案例具体讲述了设计师日常工作中不可......一起来看看 《以匠心,致设计:网易 UEDC 用户体验设计》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具