`
dyingcow
  • 浏览: 133207 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GoogleGuice试用

阅读更多

       日前Google推出了他自己的轻量级依赖注入(dependency inject)框架——Guice。Guice依靠Java新的Annotation特性,取代了XML的配置,并提供了灵活的注入方法,可以注入到成员、参数、方法等多个位置。在它的官方页面上有一份新手入门的文档,另外可以获取相关信息的就是两个人的blog链接。

        初步试用了一下,感觉Guice的Annotation机制和Spring的XML配置功能上基本是完全等价的,只是一个是写在代码中,一个是写在配置文件中,这个也是日前JavaEye上面关于Annotation的讨论的核心——Annotation的引入究竟是倒退还是进步?我对依赖注入及两个框架都还不是了解的非常透彻,不好妄加评论。

      下面就来说说Guice的试用感想:

      Guice的注入机制是靠Binder、Injector、Module等类来实现的。开发者实现Module这个接口,编写他的configure(Binder binder)方法。这个方法的功效相当于Spring中用于配置的XML文件,它通过系统传递过来的参数binder进行注入规则的说明。基础的方法链就像是这个样子:

    binder.bind(Service.class).to(ServiceImpl.class)

    上面这条指令声明了用ServiceImpl来注入需要Service的地方。

    @Inject
     public void setService(Service service){
       this.service = service;
    }

   注意到@Inject这个Annotation就是告诉Guice,这里需要注入。

   另外,你还可以在不同的地方将同一个类注入为不同的实现,这需要借助额外Annotation的帮助:

   binder.bind(Person.class).annotatedWith(Husband.class).to(Man.class)

    这个绑定的声明将下面情况下的Person绑定为Man类型

    private @Inject @Husband Person husband;

   编辑好你自己的Module之后,注入的规则就创建完毕了。在需要注入的地方添加@Inject。Guice的工作原理从这张图里可以看的很清楚:


    这样获得Injector之后,调用injector.getInstance(Class clazz)可以得到实体

Injector injector = Guice.createInjector(new MyModule());

    我的这个例子和webapp完全没有关系,只是试验了一下Guice的依赖注入过程,真正的web使用应该是没有手动获取Injector的过程的。TestGuiceGoogle.rar
 


分享到:
|
评论

相关推荐

    Google Guice与MyBatis集成,并实现发送邮件轮询

    Google Guice 这个高效的与Spring类似的依赖注入框架; MyBatis配置和使用; Google Guice与MyBatis集成,支持注解事务,简单的无法想象; Mybatis与mysql集成;实现发送邮件轮询; 源码是个web项目,里面有数据库的...

    google Guice 1.0 用户指南 中文

    "google Guice 1.0 用户指南 中文" Guice 是一个超轻量级的、下一代的、为 Java 5 及后续版本设计的依赖注入容器。它可以帮助 Java 企业应用开发社区解决连接对象方面的问题,例如 Web 应用如何访问中间层服务、...

    DI容器框架Google Guice与Spring框架的区别

    "DI容器框架Google Guice与Spring框架的区别" 这个标题表明我们要探讨的是两种不同的依赖注入(Dependency Injection,简称DI)容器——Google Guice和Spring框架之间的差异。DI是一种设计模式,它帮助开发者在对象...

    Google guice

    **Google Guice**,全称为Google Injection,是一个轻量级的依赖注入框架,它通过注解(Annotations)来实现对象的自动装配,简化了Java应用的构造和管理。Guice的核心理念是帮助开发者摆脱手动创建对象和管理对象...

    Learning Google Guice

    标题《Learning Google Guice》指出本文档是关于学习谷歌Guice的,Guice是由谷歌开发的一个轻量级的依赖注入框架,其核心理念是简化Java应用程序中组件的创建和组装过程,通过依赖注入提高模块间的解耦,从而使得...

    Google Guice需要的jar

    Google Guice是一个轻量级的依赖注入框架,由Google开发并维护,主要用于简化Java应用程序的构建和管理。依赖注入(Dependency Injection,简称DI)是一种设计模式,它可以帮助开发者减少代码间的耦合,提高代码的可...

    google guice基础例子

    Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter...

    google guice 3.0源码

    Google Guice,全称为GoogleInject,是一个轻量级的依赖注入框架,由Google开发并开源。Guice的目标是简化Java应用程序的构造和管理,通过自动装配对象依赖关系,让开发者可以专注于业务逻辑而不是对象的创建和组装...

    Google Guice: Agile Lightweight Dependency Injection Framework

    ### Google Guice: 敏捷轻量级依赖注入框架详解 #### 一、引言与背景 在现代软件开发中,依赖注入(Dependency Injection, DI)已成为构建灵活、可维护和可测试应用程序的重要手段之一。Google Guice作为一款100%...

    google-guice用户手册

    ### Google Guice 用户手册知识点详解 #### 一、Google Guice 概览 **Google Guice** 是一个轻量级的 Java 依赖注入容器,它为 Java 5 及以上版本提供支持。与传统的对象创建方式相比,Guice 通过减少样板代码...

    Google Guice入世(转 附带一Guice1.0的简单测试代码)

    博文链接:https://avengerbevis.iteye.com/blog/69237

    google-guice

    谷歌Guice,全名Google Guice,是一款轻量级的依赖注入框架,专为Java 5及更高版本设计。依赖注入(Dependency Injection,简称DI)是一种软件设计模式,旨在降低代码间的耦合度,提高可测试性和可维护性。Guice通过...

    基于Google Guice的Android版本3.0设计源码(已退役)

    该项目为基于Google Guice框架的Android应用版本3.0设计源码,已退役。源码包含1170个文件,其中Java源文件697个,HTML文件218个,JAR文件70个,XML文件64个,PNG文件34个,属性文件16个,IML文件15个,SHA1文件6个...

    Google的产品Guice

    用户指南 博文链接:https://hejianjie.iteye.com/blog/83374

    Google.Guice.Agile.Lightweight.Dependency.Injection.Framework

    《Google Guice:敏捷轻量级依赖注入框架》是一本深度探索Google Guice框架的专著,由Robbie Vanbrabant撰写,旨在帮助读者全面掌握这一先进的依赖注入技术。本书共180页,提供了PDF电子书和按需打印两种版本,是...

    guice:Google Guice扩展

    该项目包含一组Google Guice扩展程序,可用于开发中。 符合OSGi: 生成状态: 问题: : //github.com/mycila/license-maven-plugin/issues 许可证: Apache License 2.0 贡献者 @mgoellnitz @keeganwitt ...

    Apress.Google.Guice.Agile.Lightweight.Dependency.Injection.Framework.Apr.2008

    《Apress.Google.Guice.Agile.Lightweight.Dependency.Injection.Framework.Apr.2008》这本书专注于介绍Google Guice这一轻量级依赖注入框架。依赖注入(Dependency Injection,简称DI)是软件设计模式中的一种,它...

Global site tag (gtag.js) - Google Analytics