Guice 注入--(privateModule,intall(),expose())
来源:互联网 发布:知乎武汉船用机械 编辑:程序博客网 时间:2024/05/19 23:11
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 {@Overridepublic String hello() { return "哈喽";}}</span>ISay接口的另外一个实现EngSayImp
public class EngSayImp implements ISay {@Overridepublic String hello() { return "Hello";}}
定义ISay接口与实现的绑定关系
public class SayModule extends AbstractModule {@Overrideprotected void configure() {bind(ISay.class).to(ChsSayImp.class);}}
然后再定义一个接口Iperson
public interface IPerson {String say();String wirte();}定义IPerson的实现类
public class Person implements IPerson {@Injectprivate ISay sayImp;//在Iperson的实现类中注入Say的实现@Overridepublic String say() {return sayImp.hello();}@Overridepublic String wirte() {return "the write mehod";}}然后定义Person绑定关系,这里使用PrivateModule来说明其中用法
public class PersonModule extends PrivateModule {@Overrideprotected 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 引入头文件
0 0
- Guice 注入--(privateModule,intall(),expose())
- guice 注入
- Guice注入--Properties
- Googel Guice注入方式
- Guice 依赖注入
- Guice依赖注入(@Inject)
- IOC依赖注入:google-guice
- Guice 三种注入方式
- Google Guice之选项注入
- Google Guice之注入方式
- Guice--Java依赖注入框架
- 依赖注入及Guice简述
- Guice 注入与TestNG结合
- akka actor guice依赖注入
- 通过 Guice 进行依赖项注入
- Android依赖注入:Google Guice on Android
- 通过Guice 进行依赖项注入
- Google Guice 入门教程01 - 依赖注入(1)
- android.support.v7.widget.SearchView开发记录(一)
- 练习三 Problem T
- 在Android应用中使用自定义证书的HTTPS连接(下)
- HTML5+CSS3-第二节(浏览器前缀、css新特征、文本溢出、新的颜色设定、透明设定、文本填充色、文本边框色、圆角)
- peda的帮助文档(自己翻译)
- Guice 注入--(privateModule,intall(),expose())
- OC视频教程29课-第01讲 Classes
- hdu1151(二分图最大独立集)
- android-----Volley框架使用ImageLoader加载图片源码分析
- HDU 4568 Hunter
- 工资数组类
- PyQt基础第4篇——导入图片资源
- ofbiz详解(Java开放电子商务平台)
- C 字符串中sizeof() 和 strlen()