一个开源的快速IOC容器分享
一个效率是Unity 5-7倍的IOC容器分享。
测试效果看上传的图片
源码地址
https://github.com/mt830813/IOCFactory
示例地址
https://github.com/mt830813/IOCFactory/tree/master/IOCFactoryUnitTest
目前已经用在公司内部的一个项目中。
支持json与unitySetting.xml两种文件格式的注册
由于是个人处于兴趣写的。所以有不足之处欢迎批评与建议。
对于性能方面的建议尤其欢迎。
------解决方案--------------------支持开源
------解决方案--------------------支持。。。。。
------解决方案--------------------自己写的一个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那执行过程都头大
------解决方案--------------------学习 刘明 谢谢楼主!
------解决方案--------------------
功能少自然就快了,看unity那执行过程都头大
你错了。
他的核心算法和我的核心算法有本质的区别。
这才是速度有区别的根本原因。
有多大区别,不都是一个类型注册表字典,然后通过反射什么的查找构造方法啊用lambda表达式之类的实例化类型
------解决方案--------------------核心算法在哪里?你能否充分说明下。
-