在工作中关于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进行AOP(面向切面编程)和模块组合,以及在实际项目中的应用场景和最佳...
- 快速设置中,通过创建一个Guice模块并注入必要的MyBatis组件,可以快速启动一个MyBatis-Guice应用。 3. 核心组件 - MyBatis-Guice的核心组件包括MyBatis的引导、Guice的模块和范围、SqlSession以及...
通过阅读和学习这些资料,开发者可以快速掌握如何在自己的Guice应用中集成Metrics。 总的来说,metrics-guice项目为Guice用户带来了一种优雅且便捷的方式来监控他们的应用。通过利用Guice的注解驱动特性,它可以...
- guice-struts2-plugin-3.0.jar允许Guice管理Struts2应用中的Action和插件。这使得Guice可以控制Action实例的生命周期,以及依赖注入到Action中,增强了Struts2的应用可测试性和可维护性。 4. **Guice的优势**: ...
- **实战应用**:学习如何使用Guice构建真实的Web应用程序,例如使用Struts 2或Wicket开发Web应用,以及如何使用Hibernate进行数据持久化操作。 #### 四、Guice的关键特性 - **依赖注入**:通过注解的方式声明依赖...
Guice 提供了一种简洁、类型安全的方式来管理应用程序中的对象生命周期和依赖关系。 **依赖注入的核心概念** 1. **依赖**: 在一个类中,如果需要使用另一个类的服务,那么这个被引用的类就称为依赖。 2. **注入**:...
Guice的设计目标是使开发人员能够更轻松地创建可测试、可维护的应用程序。 #### 二、Guice的特点 1. **轻量级**:Guice非常小巧,不会给项目增加过多的复杂度。 2. **易用性**:Guice的学习曲线平缓,开发者可以...
在实际应用中,Guice 可以帮助我们更好地管理依赖关系,减少代码的耦合度,使得代码更加灵活、可维护和可扩展。 在 Guice 中,我们可以使用依赖注入的方式来管理对象之间的依赖关系。例如,在上面的例子中,我们...
本文将详细介绍如何将 Apache Shiro 集成到基于 Guice 的应用中。 #### Apache Shiro 与 Guice 集成概述 自 Shiro 1.2 版本起,官方提供了与 Guice 集成的支持。这种集成允许开发者利用 Guice 的强大特性来配置和...
Guice是Google提供的一款轻量级的DI框架,它简化了在Java应用中管理对象及其依赖关系的过程。这个“基于Guice的HelloWorld项目”就是一个简单的示例,用于展示如何使用Guice进行依赖注入。 首先,我们需要理解Guice...
"guice-persist-jooq"项目正是这两者的结合,它为Guice提供了一个模块,使得开发者可以轻松地在Guice应用中集成jOOQ的持久化功能。这个项目的核心在于它的持久化模块,它实现了 javax.persistence.EntityManager ...
Google Guice是一个轻量级的依赖注入框架,由Google开发并维护,主要用于简化Java应用程序的构建和管理。依赖注入(Dependency Injection,简称DI)是一种设计模式,它可以帮助开发者减少代码间的耦合,提高代码的可...
开发者可以通过阅读源码了解其设计思路和实现细节,学习如何将Guice应用于实际项目中。构建脚本(如Gradle或Maven)会指示如何编译、测试和打包项目,这对于理解项目构建流程和环境配置至关重要。 除此之外,`...
Guice是Google提供的一款轻量级的DI框架,用于简化Java应用的初始化和配置过程。本文将基于提供的文件,详细介绍Guice的基本概念、使用方法以及如何进行测试。 【描述】 Guice通过注解的方式实现了依赖注入,使得...
Guice的目标是简化Java应用程序的构造和管理,通过自动装配对象依赖关系,让开发者可以专注于业务逻辑而不是对象的创建和组装。Guice 3.0是其一个重要的版本,提供了许多改进和新特性。 在Guice 3.0源码中,我们...
Guice,全称为Google Guice,是一款由Google开发的轻量级依赖注入(Dependency Injection,简称DI)框架,主要用于简化Java应用的初始化和组件管理。依赖注入是一种设计模式,它可以帮助开发者解耦代码,提高软件的...
Guice用户指南翻译提供了详细的文档,帮助开发者理解和使用Guice框架,包括安装、配置、依赖注入、生命周期管理以及与其他框架的集成等各个方面,是学习和应用Guice的重要资源。通过深入阅读和实践,开发者可以更好...
“Java on Guice”这篇文档探讨了依赖注入(Dependency Injection, DI)在Java应用中的实践方式及其带来的诸多好处。它由Google的Bob Lee和Kevin Bourrillion撰写,并于2007年4月26日发布。文档通过一系列问题引导...
将Struts2与Guice整合可以充分利用Guice的依赖注入特性,提高Struts2应用的可测试性和模块化。 整合Struts2和Guice,首先需要在项目中引入Guice的依赖库。这通常通过在pom.xml(如果你使用的是Maven)或者build....