日期:2014-05-17  浏览次数:20929 次

一个开源的快速IOC容器分享
一个效率是Unity 5-7倍的IOC容器分享。
测试效果看上传的图片

源码地址
https://github.com/mt830813/IOCFactory
示例地址
https://github.com/mt830813/IOCFactory/tree/master/IOCFactoryUnitTest

目前已经用在公司内部的一个项目中。
支持json与unitySetting.xml两种文件格式的注册

由于是个人处于兴趣写的。所以有不足之处欢迎批评与建议。
对于性能方面的建议尤其欢迎。
ioc 开源 源码

------解决方案--------------------
支持开源
------解决方案--------------------
支持。。。。。
------解决方案--------------------
自己写的一个DI容器  创建Bean并且注入的
这个是Bean 不是单例
@Bean(singleton=false)
public class UserController {

@Inject
private UserService userService;

public String list() {
return userService.list();
}

}

这个是测试类
public class Test {

public static void main(String[] args) {

ApplicationContext ctx = new ApplicationContext();

UserController controller = null;

long l1 = System.currentTimeMillis();

for(int i = 1000 * 1000; i > 0; i--) {
controller = ctx.getBean(UserController.class);
}

long l2 = System.currentTimeMillis();

System.out.format("time: %d ms\n", l2 - l1);

ctx.close();
}

}

结果是:time: 860 ms
------解决方案--------------------
讲讲原理,看看好玩不好玩
------解决方案--------------------
好神奇,好犀利。。。。
------解决方案--------------------
IOC的机制是:---处理类之间和接口之间或类与接口之间关联关系,根据好莱坞原则,调用着与被调用者的主次关系,实现开关的原则.类之间可以很好(甚至)可以完全避免耦合,一个类只负责自己逻辑功能代码,如果想调用其它类告诉IOC容器去做(一种比较好的方式是根据配置文件来设定复杂关系),而不需要在代码上过多的编写.

来源:IOC容器到底是什么
------解决方案--------------------
顶 + mark

有空学习学习

但使用 我还是选择有团队继续维护的~
------解决方案--------------------
好东西~~~~~~~~~~~~
------解决方案--------------------
不错不错,值得学习,谢谢楼主。
------解决方案--------------------
功能少自然就快了,看unity那执行过程都头大
------解决方案--------------------
学习 刘明 谢谢楼主!
------解决方案--------------------
引用:
Quote: 引用:

功能少自然就快了,看unity那执行过程都头大

你错了。
他的核心算法和我的核心算法有本质的区别。
这才是速度有区别的根本原因。


引用:
Quote: 引用:

功能少自然就快了,看unity那执行过程都头大

你错了。
他的核心算法和我的核心算法有本质的区别。
这才是速度有区别的根本原因。


有多大区别,不都是一个类型注册表字典,然后通过反射什么的查找构造方法啊用lambda表达式之类的实例化类型
------解决方案--------------------
核心算法在哪里?你能否充分说明下。
-