论坛首页 Java企业应用论坛

Google Guice - 比Spring快100倍的IoC容器

浏览 53221 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-02-27  
Bob Lee是个牛人啊~~
JBoss的AOP最初代码还是他提供的.

2年前研究AOP的时候读过他的blog,还有他的dynaop代码也是精巧得很,里面很多工具类我一直在使用.

这家伙一直用Mac Book,

后来去了Google,貌似就没有消息了...

哦好象还只是20出头的毛头小伙....

一不小心8卦了...
0 请登录后投票
   发表时间:2007-02-28  
靠,强烈关注中...
0 请登录后投票
   发表时间:2007-02-28  
Allen 写道
这个Bob Lee可是相当不简单的说……

他写的一个Singleton模式的写法前不久还得到了OnJava编辑的推荐呢:
public class Singleton {

  static class SingletonHolder {
    static Singleton instance = new Singleton();
  }

  public static Singleton getInstance() {
    return SingletonHolder.instance;
  }

}


See in : http://crazybob.org/2007/01/lazy-loading-singletons.html
See also : http://www.oreillynet.com/onjava/blog/2007/01/singletons_and_lazy_loading.html


为Jeremy Manson和Brian Goetz抱不平,这个写法是他们的研究成果,Bob Lee只是帮他们推广了一下而已,怎么就成了他名下的了?!
0 请登录后投票
   发表时间:2007-02-28  
max.h.chen 写道
为Jeremy Manson和Brian Goetz抱不平,这个写法是他们的研究成果,Bob Lee只是帮他们推广了一下而已,怎么就成了他名下的了?!

仔细看了一下,确实是这样的。Initialization on Demand Holder (IODH) idiom确实是Jeremy Manson和Brian Goetz的成果,也正是Jeremy的建议让Bob知道了这样的写法。
引用
Imagine my surprise today when Jeremy Manson pointed me to the Initialization on Demand Holder (IODH) idiom which requires very little code and has zero synchronization overhead. Zero, as in even faster than volatile. IODH requires the same number of lines of code as plain old synchronization, and it's faster than DCL!


感谢chen的纠正!

关于Initialization on Demand Holder (IODH) idiom,详见:
http://www.cs.umd.edu/~pugh/java/memoryModel/jsr-133-faq.html#dcl
0 请登录后投票
   发表时间:2007-02-28  
i got to know this singleton impl when i was reading effective java many yrs ago...

0 请登录后投票
   发表时间:2007-02-28  
robbin 写道
http://code.google.com/p/google-guice/

Google公司的Bob lee开发的轻量级IoC容器,其特点是:

1、速度快,号称是spring的100倍速度
2、无配置文件,实用JDK5.0的annotation描述组件依赖,简单,而且有编译器检查和重构支持
3、简单,代码量很少

http://code.google.com/p/google-guice/wiki/SpringComparison

这是Google guice和spring IoC容器的对比

另外xwork2.0已经集成了Google guice容器了。

http://docs.google.com/Doc?id=dd2fhx4z_5df5hw8

这是Google guice的快速入门文档,用起来挺简单的。

spring确实是超级慢啊。

这个guice看起来不那么embeddable,不知道谁用过ejb3的dependency injection的?给比较一下?

我比较喜欢的功能:
1。快
2。静态检查。没用过,不知道能达到什么程度。
3。没有特殊的setter injection,这样显得更优雅。

有点犹豫的:
1。说是ultra-lightweight。可能是指代码量说的。从侵入性来讲,要求组件import Guice的Annotation,这不太lightweight——当然,从实用角度来讲也不一定就是大不了的问题。

0 请登录后投票
   发表时间:2007-02-28  
如果光讲这个“快”的话不能看比例吧,1毫秒和100毫秒对用户来说没有什么区别,用spring到现在从来没有它有多慢,现在搞的分布式系统里,感觉remote session bean才叫个真慢,呵呵
0 请登录后投票
   发表时间:2007-02-28  
ahuaxuan 写道
如果光讲这个“快”的话不能看比例吧,1毫秒和100毫秒对用户来说没有什么区别,用spring到现在从来没有它有多慢,现在搞的分布式系统里,感觉remote session bean才叫个真慢,呵呵

spring慢也是在容器启动的时候慢,做的事情多自然就慢了,guice只是一个IoC容器而已,IoC只是spring的一部分
0 请登录后投票
   发表时间:2007-02-28  
无配置文件的好处就是可以静态检查,就是编译器就发现配置的问题,这个很好
0 请登录后投票
   发表时间:2007-02-28  
Guice (pronounced 'juice') is an ultra-lightweight, next-generation dependency injection container for Java 5 and later.

其关注点在DI,还没有像Spring那样提供一些辅助的功能。现在如果拿来和Spring做全面的比较,还为时尚早。
some 100X faster than Spring for dependency injection.100倍的提高也是在DI,看以后的发展吧。

不过多一个开源的选择还是不错。不知道老Johnson对这个100X如何评价。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics