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

Guice的应用

阅读更多
在工作中关于IoC应用最多的因该是spring容器。
听说google退出了更轻便DI容器---Guice!
看看Guice是如何实现注入的!

1,首先定义一个简单的接口以及接口的实现:
public interface MyService ...{
    void myMethod();
}

public class MyServiceImpl implements MyService ...{
    public void myMethod() ...{
        System.out.println("Hello,LINKEN!");
    }
}


import com.google.inject.Inject;
public class Client ...{
    MyService service;
    @Inject //告诉容器,这里的service对象的引用,需要进行注入
    void setService(MyService service) ...{ //这里的方法名字可以任意定义
        this.service = service;
    }
    public void myMethod() ...{
        service.myMethod();
    }
}



这里除了加了一个@Inject,和Spring的配置没有任何的区别。
@Inject,是表示对容器说,这里的service需要注射,等到运行的时候,容器会拿来一个实例给service,完成注射的过程。

2,定义Guice的Module文件 告诉容器如何进行注入
import com.google.inject.Binder;
import com.google.inject.Module;
import com.google.inject.Scopes;

public class MyModule implements Module ...{
    public void configure(Binder binder) ...{    binder.bind(MyService.class).to(MyServiceImpl.class).in(Scopes.SINGLETON);
    // 这句代码的意思是说:运行时动态的将MyServiceImpl对象赋给MyService定义的对象,而且这个对象是单例的。
    }
}


3,测试类:
import com.google.inject.Guice;
import com.google.inject.Injector;

public class Test ...{

    public static void main(String[] args) ...{
MyModule module = new MyModule();// 定义注射规则
Injector injector = Guice.createInjector(module);// 根据注射规则,生成注射者
        Client client = new Client();
injector.injectMembers(client);// 注射者将需要注射的bean,按照规则,把client这个客户端进行注射
        client.myMethod();    
}
}


输出的结果那就是:Hello,LINKEN!
分享到:
评论

相关推荐

    初试Guice(转)

    在提供的博文链接中,可能会详细介绍如何创建一个基本的Guice应用,如何编写模块,以及如何使用注解来注入依赖。可能还会涉及到如何使用Guice进行AOP(面向切面编程)和模块组合,以及在实际项目中的应用场景和最佳...

    mybatis-guice-3[1].0-reference.pdf

    - 快速设置中,通过创建一个Guice模块并注入必要的MyBatis组件,可以快速启动一个MyBatis-Guice应用。 3. 核心组件 - MyBatis-Guice的核心组件包括MyBatis的引导、Guice的模块和范围、SqlSession以及...

    httpz-dispatch_2.11-0.2.10-RC1-scalaz70.zip

    通过阅读和学习这些资料,开发者可以快速掌握如何在自己的Guice应用中集成Metrics。 总的来说,metrics-guice项目为Guice用户带来了一种优雅且便捷的方式来监控他们的应用。通过利用Guice的注解驱动特性,它可以...

    guice-3.0.rar

    - guice-struts2-plugin-3.0.jar允许Guice管理Struts2应用中的Action和插件。这使得Guice可以控制Action实例的生命周期,以及依赖注入到Action中,增强了Struts2的应用可测试性和可维护性。 4. **Guice的优势**: ...

    Google Guice: Agile Lightweight Dependency Injection Framework

    - **实战应用**:学习如何使用Guice构建真实的Web应用程序,例如使用Struts 2或Wicket开发Web应用,以及如何使用Hibernate进行数据持久化操作。 #### 四、Guice的关键特性 - **依赖注入**:通过注解的方式声明依赖...

    Guice 中文文档 例子

    Guice 提供了一种简洁、类型安全的方式来管理应用程序中的对象生命周期和依赖关系。 **依赖注入的核心概念** 1. **依赖**: 在一个类中,如果需要使用另一个类的服务,那么这个被引用的类就称为依赖。 2. **注入**:...

    Guice用户中文指南

    Guice的设计目标是使开发人员能够更轻松地创建可测试、可维护的应用程序。 #### 二、Guice的特点 1. **轻量级**:Guice非常小巧,不会给项目增加过多的复杂度。 2. **易用性**:Guice的学习曲线平缓,开发者可以...

    google Guice 1.0 用户指南 中文

    在实际应用中,Guice 可以帮助我们更好地管理依赖关系,减少代码的耦合度,使得代码更加灵活、可维护和可扩展。 在 Guice 中,我们可以使用依赖注入的方式来管理对象之间的依赖关系。例如,在上面的例子中,我们...

    shiro,guice集成

    本文将详细介绍如何将 Apache Shiro 集成到基于 Guice 的应用中。 #### Apache Shiro 与 Guice 集成概述 自 Shiro 1.2 版本起,官方提供了与 Guice 集成的支持。这种集成允许开发者利用 Guice 的强大特性来配置和...

    基于guice的简单项目

    Guice是Google提供的一款轻量级的DI框架,它简化了在Java应用中管理对象及其依赖关系的过程。这个“基于Guice的HelloWorld项目”就是一个简单的示例,用于展示如何使用Guice进行依赖注入。 首先,我们需要理解Guice...

    pax-url-link-2.0.0.zip

    "guice-persist-jooq"项目正是这两者的结合,它为Guice提供了一个模块,使得开发者可以轻松地在Guice应用中集成jOOQ的持久化功能。这个项目的核心在于它的持久化模块,它实现了 javax.persistence.EntityManager ...

    Google Guice需要的jar

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

    gretty-plugin-commons-0.0.18.zip

    开发者可以通过阅读源码了解其设计思路和实现细节,学习如何将Guice应用于实际项目中。构建脚本(如Gradle或Maven)会指示如何编译、测试和打包项目,这对于理解项目构建流程和环境配置至关重要。 除此之外,`...

    初试Guice测试文件

    Guice是Google提供的一款轻量级的DI框架,用于简化Java应用的初始化和配置过程。本文将基于提供的文件,详细介绍Guice的基本概念、使用方法以及如何进行测试。 【描述】 Guice通过注解的方式实现了依赖注入,使得...

    google guice 3.0源码

    Guice的目标是简化Java应用程序的构造和管理,通过自动装配对象依赖关系,让开发者可以专注于业务逻辑而不是对象的创建和组装。Guice 3.0是其一个重要的版本,提供了许多改进和新特性。 在Guice 3.0源码中,我们...

    guice超轻量级依赖注入

    Guice,全称为Google Guice,是一款由Google开发的轻量级依赖注入(Dependency Injection,简称DI)框架,主要用于简化Java应用的初始化和组件管理。依赖注入是一种设计模式,它可以帮助开发者解耦代码,提高软件的...

    Guice用户指南翻译

    Guice用户指南翻译提供了详细的文档,帮助开发者理解和使用Guice框架,包括安装、配置、依赖注入、生命周期管理以及与其他框架的集成等各个方面,是学习和应用Guice的重要资源。通过深入阅读和实践,开发者可以更好...

    Java on Guice

    “Java on Guice”这篇文档探讨了依赖注入(Dependency Injection, DI)在Java应用中的实践方式及其带来的诸多好处。它由Google的Bob Lee和Kevin Bourrillion撰写,并于2007年4月26日发布。文档通过一系列问题引导...

    struts2 整合guice

    将Struts2与Guice整合可以充分利用Guice的依赖注入特性,提高Struts2应用的可测试性和模块化。 整合Struts2和Guice,首先需要在项目中引入Guice的依赖库。这通常通过在pom.xml(如果你使用的是Maven)或者build....

Global site tag (gtag.js) - Google Analytics