Guice 注入--(privateModule,intall(),expose())

原创 2016年05月31日 20:14:54

          Guice注入的总体思路是:1-首先有Interface 2-针对接口定义一个实现Imp 3-创建一个类(继承自PrivateModule或者AbstractModule )来定义Interface与实现类Imp的关系。通过下面的例子来理解这种定义。

  定义一个Isay接口:

public interface ISay {  String hello();}
  定义ISay接口的实现ChsSayImp,可以定义多个实现
<span style="font-size:18px;">public class ChsSayImp implements ISay {	
	@Override
	public String hello() { return "哈喽";}
}</span>
  ISay接口的另外一个实现EngSayImp

public class EngSayImp implements ISay {
	@Override
	public String hello() { return "Hello";}
}

定义ISay接口与实现的绑定关系

public class SayModule extends AbstractModule {
	@Override
	protected void configure() {
		bind(ISay.class).to(ChsSayImp.class);
	}
}


然后再定义一个接口Iperson

public interface IPerson {
	String say();
	String wirte();
}
定义IPerson的实现类

public class Person implements IPerson {
	@Inject
	private ISay sayImp;//在Iperson的实现类中注入Say的实现
	
	@Override
	public String say() {		
		return sayImp.hello();
	}

	@Override
	public String wirte() {
		return "the write mehod";
	}
}
然后定义Person绑定关系,这里使用PrivateModule来说明其中用法

public class PersonModule extends PrivateModule {
	@Override
	protected void configure() {
		bind(IPerson.class).to(Person.class);
               expose(IPerson.class);	
		install(new SayModule());
	}
}

expose 方法将会使
bind(IPerson.class).to(Person.class); <span style="font-size:18px;">这个私有绑定关系对IPerson接口可见</span>

否则使用injector 无法获取IPerson的实例,一般expose前都会有一个bind方法,expose使这种绑定对module可见


install 就比较容易理解,因为Iperson的实现类中依赖 SayModule ,这里使用install 就是在当前module中添加SayModule依赖 有点类似于 import 引入头文件









Guice 依赖注入

简介 Java企业应用开发社区在连接对象方面花了很大功夫。你的Web应用如何访问中间层服 务?你的服务如何连接到登录用户和事务管理器?关于这个问题你会发现很多通用的和特 定的解决方案。有一些方案依赖...
  • zengqiang1
  • zengqiang1
  • 2016年11月22日 10:22
  • 652

Google Guice 依赖注入框架:简明教程

Guice是一个轻量级的依赖注入框架。用于对象之间的依赖的注入。 本文的所有例子基于Guice 4.0 Guice的使用: Guice的使用涉及接口,接口的实现类,接口与其实现类...
  • jiasanshou
  • jiasanshou
  • 2015年09月30日 16:47
  • 3978

Google Guice - 轻量级 DI 依赖注入框架

Guice简单使用 示例代码 Anddd7/Demo-Guice 参考了 博客 - Google Guice 系列教程 和 Github - greengerong/guice-demo...
  • u011858405
  • u011858405
  • 2017年03月09日 16:28
  • 408

Googel Guice注入方式

1.类依赖注入所谓的绑定就是将一个接口绑定到具体的类中,这样客户端不用关心具体的实现,而只需要获取相应的接口完成其服务即可。HelloWorld.java public interface ...
  • u011870547
  • u011870547
  • 2016年09月22日 17:35
  • 761

Guice 注入与TestNG结合

通过对象工厂(IObjectFactory)和模块(AbstractModule)结合使Guice注入在TestNG使用更加方便简洁...
  • LangSand
  • LangSand
  • 2016年12月22日 17:04
  • 504

Google Guice之注入方式

在Guice中,注入方法有如下几种: 一、构造器注入(Constructor Injection) 使用构造器注入只要在构造方法上添加一个@Inject注解,该构造方法接收一些依赖参数,大多数的构造方...
  • xtayfjpk
  • xtayfjpk
  • 2014年11月02日 11:50
  • 2418

深入剖析Guice(Google依赖注入框架)

众所周知的依赖注入框架Spring,但还有一个性能好且轻量的框架Guice,Guice来自Google,且Google的很多产品都是使用的Guice...
  • zhaowen25
  • zhaowen25
  • 2016年10月25日 22:06
  • 3062

依赖注入及Guice简述

Guice简介    Guice是一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。    Guice非常小而且快。    Guice是类型安全的,它能够对构造函数,属性,...
  • ChaosJ
  • ChaosJ
  • 2016年04月13日 13:51
  • 1137

Google Guice之AOP(面向切面编程)

前面介绍了Guice的绑定和注入的方法,下面
  • jing_le
  • jing_le
  • 2014年05月03日 13:20
  • 896

Guice 学习(二)构造器注入(Constructor Inject)

为了演示下面的支持多参数的构造函数注入,我在这里写了2个接口和其实现类。注意事项写在了程序注释里面。 1、接口 (interface)/* * Creation : 2015年6月30日 */ p...
  • u010834071
  • u010834071
  • 2015年07月01日 10:02
  • 1622
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Guice 注入--(privateModule,intall(),expose())
举报原因:
原因补充:

(最多只允许输入30个字)