精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-02-27
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的快速入门文档,用起来挺简单的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-02-27
无配置文件这点上,不知道是不是优点......
|
|
返回顶楼 | |
发表时间:2007-02-27
这个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 |
|
返回顶楼 | |
发表时间:2007-02-27
justcode 写道 无配置文件这点上,不知道是不是优点......
哈哈 我看到"实用JDK5.0的annotation描述组件依赖"时心里马上凉了半截 冒出的想法和justcode完全一样 呵呵 |
|
返回顶楼 | |
发表时间:2007-02-27
public class Singleton { static class SingletonHolder { static Singleton instance = new Singleton(); } public static Singleton getInstance() { return SingletonHolder.instance; } } 不得不佩服Bob Lee了,咱怎么就没有想到呢,呵呵,看来Bob Lee对java真的是相当的精通了,到现在还能创新单例模式,牛 |
|
返回顶楼 | |
发表时间:2007-02-27
ahuaxuan 写道 不得不佩服Bob Lee了,咱怎么就没有想到呢,呵呵,看来Bob Lee对java真的是相当的精通了,到现在还能创新单例模式,牛 牛是牛,不过感觉singleton的lazy loading用处不大。 通常lazy loading用在比较消耗资源的时候。生产环境下一般在容器启动时候就load了,越早发现问题越好,测试环境下可能有些作用。 不过就算是lazy loading有用,通常singleton里面只有getInstance(),也就是说即使把singleton作为类的静态实例缓存,也是在调用getInstance()时候才会加载,这不就是lazy loading想做的效果么。 除非你非要load singleton class,比如在singleton class里面写些别的静态方法或者使用反射load它,不过我不会这么做。 |
|
返回顶楼 | |
发表时间:2007-02-27
intolong 写道 ahuaxuan 写道 不得不佩服Bob Lee了,咱怎么就没有想到呢,呵呵,看来Bob Lee对java真的是相当的精通了,到现在还能创新单例模式,牛 牛是牛,不过感觉singleton的lazy loading用处不大。 通常lazy loading用在比较消耗资源的时候。生产环境下一般在容器启动时候就load了,越早发现问题越好,测试环境下可能有些作用。 不过就算是lazy loading有用,通常singleton里面只有getInstance(),也就是说即使把singleton作为类的静态实例缓存,也是在调用getInstance()时候才会加载,这不就是lazy loading想做的效果么。 除非你非要load singleton class,比如在singleton class里面写些别的静态方法或者使用反射load它,不过我不会这么做。 这种singleton lazy loading不是主要benefit concurrent才是正解 |
|
返回顶楼 | |
发表时间:2007-02-27
我去看了一下,目前还处于RC状态。可以做做测试。不推荐在实际项目中使用。不过这个IOC是基于JavaSE5设计的。使用老版本的人就没辙了。还有,用Annotation来写的话,每次修改都需要重新编译,不如XML灵活。
|
|
返回顶楼 | |
发表时间:2007-02-27
intolong 写道 ahuaxuan 写道 不得不佩服Bob Lee了,咱怎么就没有想到呢,呵呵,看来Bob Lee对java真的是相当的精通了,到现在还能创新单例模式,牛 牛是牛,不过感觉singleton的lazy loading用处不大。 通常lazy loading用在比较消耗资源的时候。生产环境下一般在容器启动时候就load了,越早发现问题越好,测试环境下可能有些作用。 不过就算是lazy loading有用,通常singleton里面只有getInstance(),也就是说即使把singleton作为类的静态实例缓存,也是在调用getInstance()时候才会加载,这不就是lazy loading想做的效果么。 除非你非要load singleton class,比如在singleton class里面写些别的静态方法或者使用反射load它,不过我不会这么做。 呵呵,这个写法的意义更多的是在创新,我不是说这个方法本身多了不起,我在说这个人,单例出来这么多年了,他还能再创新,难道不是很了不起吗 其次,如果我不是做web的呢,我是c/s,我的client是一个exe,用户操作完可能就关掉的,同时恰好这个类里还有一个static方法(呵呵,太巧了,或者这个exe配置了预先加载),这时候我想这个写法还是不错的, 但是主要的意义在于对单例写法的补充,也让我们可以看到单例还有这种写法 引用 不过就算是lazy loading有用,通常singleton里面只有getInstance(),也就是说即使把singleton作为类的静态实例缓存,也是在调用getInstance()时候才会加载,这不就是lazy loading想做的效果么。 不是吧,如果这个类被预先加载了,那如果是用类的静态实例缓存那这个对象肯定被初始话了,如果有lazy的话即使加载了Class,也不会实例化这个类的对象的
|
|
返回顶楼 | |
发表时间:2007-02-27
存在即合理,GOOGLE 为什么推出了 IOC 仅仅为了自己使用?
|
|
返回顶楼 | |