最近在研究Google 的 Guice,感觉用起来挺简单的,入门应该比Spring要容易的多,这也许是因为Guice刚刚出世,很功能还没有完善吧,但据说Google内部已经在用了,我想再过一段时间取Spring而代之也不是没有可能,至少也能跟Spring平分天下吧。
下面是一个简单的小实例
1.业务逻辑接口
package com.hawkunion.guice;
/**
*
* @author 杜庆明
*/
public interface Work {
public void sayHello(String userName);
}
2.实现接口的业务逻辑
package com.hawkunion.guice;
/**
*
* @author 杜庆明
*/
public class WorkImpl implements Work{
public void sayHello(String userName) {
System.out.println("Hello! 欢迎你:"+userName);
}
}
3.要用到业务逻辑的类
package com.hawkunion.guice;
import com.google.inject.Inject;
/**
*
* @author 杜庆明
*/
public class RunWorkClass {
private Work work = null;
@Inject
public void setWork(Work workimpl){
this.work = workimpl;
}
public void runWork(){
work.sayHello("阿杜");
}
}
4.Module
package com.hawkunion.guice;
import com.google.inject.Binder;
import com.google.inject.Module;
/**
*
* @author 杜庆明
*/
public class MyModule implements Module {
public void configure(Binder binder) {
binder.bind(Work.class).to(WorkImpl.class);
}
}
5.测试
package com.hawkunion.guice;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
/**
*
* @author 杜庆明
*/
public class TestWork {
public static void main(String args[]){
RunWorkClass runWorkClass = new RunWorkClass();
Module module = new MyModule();
Injector in = Guice.createInjector(module);//把module给Guice
in.injectMembers(runWorkClass);//让Guice把需要注入的业务逻辑注入给对象
runWorkClass.runWork();// 运行work
}
}
。。。
相关推荐
**标题:“初试Guice(转)”,描述:“demo 很好的例子,博文链接:https://phantom.iteye.com/blog/92183”** 这篇文章提到了Guice,这是一个由Google开发的轻量级Java依赖注入框架,用于简化Java应用程序的构建和...
"Guice 中文文档 例子" 包含了 Guice 的中文文档和实际操作示例,这对于学习 Guice 非常有帮助。文档可能涵盖了以下内容: 1. **基础概念介绍**: 解释依赖注入的概念和 Guice 的基本工作原理。 2. **模块配置**: ...
Spring框架的依赖注入是家喻户晓的,但是在实际的开发中我们想使用便捷的依赖注入功能,但是又不想引入Spring框架的复杂性,该怎么办呢? Google Guice一个不错选择。本资源中GUICE的使用方法和使用示例
### Guice用户中文指南 #### 一、简介 Guice是一个专门为Java 5及后续版本设计的超轻量级依赖注入框架。它旨在简化应用程序组件之间的依赖管理,并提供了一个更为简洁、灵活的方式来处理对象间的耦合关系。Guice的...
### Apache Shiro 与 Guice 集成详解 #### 概述 在现代软件开发过程中,集成不同的框架和技术是常见的需求。Apache Shiro 是一个强大的、易用的 Java 安全框架,提供了认证、授权、加密和会话管理功能。而 Google ...
这个“基于Guice的HelloWorld项目”就是一个简单的示例,用于展示如何使用Guice进行依赖注入。 首先,我们需要理解Guice的核心概念——Injector。Injector是Guice的核心类,它负责创建对象并管理它们的生命周期。...
本书《Google Guice: Agile Lightweight Dependency Injection Framework》旨在深入探讨Guice的核心概念和技术细节,并通过丰富的示例和背景信息帮助读者全面掌握这一强大的工具。 #### 二、Guice概述 Guice是由...
这个项目中的 "mybatis-guice" 压缩包可能包含了示例代码、配置文件以及运行该项目所需的所有资源。通过学习和分析这些代码,开发者可以深入理解如何在实际项目中集成 MyBatis 和 Guice,以及它们如何协同工作以提升...
通过上述示例可以看出,Guice 在保持代码简洁的同时,大大简化了依赖管理和单元测试的过程。随着应用规模的增长,这种简洁性的好处将越来越明显。对于那些寻求更高级、更灵活的依赖注入框架的开发者来说,Guice 是一...
在压缩包`guiceStruts2`中,可能包含了上述步骤的示例代码,包括pom.xml文件、Guice模块、Struts2配置文件、Action类以及web.xml配置。通过研究这些文件,你可以更深入地理解如何将Struts2与Guice整合。
**五、示例代码** ```java // Guice模块 public class MyGuiceModule extends AbstractModule { @Override protected void configure() { bind(MyService.class).to(MyServiceImpl.class); } @Provides @...
Scala 中的 Dropwizard-Guice 示例 这个存储库包含一个简单的例子,展示了如何在 Dropwizard 中使用 Guice 进行依赖注入。 Scala 是所选择的语言,但请注意,这里是非常“Java 的咖啡脚本”,而不是任何更复杂或更...
Guice,全称为Google Guice,是...通过创建简单示例,如“HelloWorld”程序,可以帮助我们更好地理解和掌握Guice的用法。同时,阅读博文(链接已给出)会提供更深入的指导和实际案例,以便进一步探索Guice的高级特性。
10. **实战示例**:博客中可能包含了一些实际的代码示例,展示了如何在项目中引入Guice,配置Module,以及如何使用`Injector`创建和管理对象。 通过阅读这篇博客,读者应该能够理解Guice的基本概念,学会如何在自己...
在提供的`struts2-guice`压缩包中,可能包含了实现以上步骤的示例代码,包括Struts2的配置文件、Guice模块、Action类等,供开发者参考和学习。通过这样的整合,开发者可以利用Guice的强大功能,让Struts2应用的代码...
5. `README.md` 或 `README.txt` - 提供项目简介、安装指南和使用示例。 6. `LICENSE` - 许可证文件,说明该项目遵循的开源协议,如Apache 2.0、GPLv2等。 7. `.gitignore` - 指定版本控制系统忽略的文件或目录。 8....
《Ratpack与Guice集成:打造高效Web应用》 在现代软件开发中,构建高效、可扩展的Web应用程序是一项重要...同时,Aeromock的实现也为我们提供了一个很好的示例,展示如何在实践中应用这些技术,以满足特定项目的需求。
在提供的示例中,我们看到 Guice 如何通过 `@Inject` 注解的 `setService` 方法来注入 `MyService` 实例。同时,`MyModule` 类定义了 Guice 如何创建和管理这些依赖,比如通过 `binder.bind()` 方法声明 `MyService`...
以下是一个示例配置: ```xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...