Modules.override()在Stage.PRODUCTION中不起作用.您应该使用PrivateModule,其中绑定仅在私有模块内有效/可见,因此您可以将不同的实现类绑定到同一个接口.然后,您可以将Private模块安装到父模块,但是您必须显式公开()您希望其他模块可见的所有绑定.

让我们说:

DatabaseSearchModule.java(扩展PrivateModule)

bind(PlaceSearch.class).annotatedWith(Names.named("dbSearch")).to(HibernatePlaceSearch.class);

bind(PersonSearch.class).to(HibernatePersonSearch.class);

expose(PlaceSearch.class).annotatedWith(Names.named("dbSearch"));

EleasticSearchModule.java(扩展PrivateModule)

bind(PersonSearch.class).annotatedWith(Names.named("elastic")).to(PersonElasticSearch.class);

expose(PersonSearch.class).annotatedWith(Names.named("elastic"));

那么你可以在一些父抽象或servlet模块中安装它

MainModule.java

install(new DatabaseSearchModule());

install(new EleasticSearchModule());

bind(OtherClass.class);

OtherClass.java

@Inject @Named("elastic")

private PlaceSearch elasticSearch;

@Inject @Named("dbSearch")

private PlaceSearch dbSearch;

您可以使用命名注释,也可以创建非常优雅的自己绑定Annotation.

java injector_java – Injector Hierarchy / Child Injector解释?相关推荐

  1. java injector_java – 如何从Guice Injector获取所有单例实例?

    有没有一种简单的方法来枚举Guice Injector已经创建的所有单例实例?或者另外一种方法来获得实现特定接口的所有单例? 我想找到所有实现java.io.Closeable的单例实例,这样当我的服 ...

  2. java injector_Java Injector.getParent方法代码示例

    import com.google.inject.Injector; //导入方法依赖的package包/类 @Override public BeadledomClientBuilder get() ...

  3. c java python html_如何通俗地解释 C、C++、C#、Java、JavaScript、HTML、Python的用处

    世界上本来没有计算机,工程师创造了它. 为了让告诉计算机需要做什么事情,工程师发明了程序设计语言. 简单粗暴的编程: C语言:用来学编程: C++语言:用来使劲儿学编程: C#:用来在windows操 ...

  4. java基础之多态的详细解释_JAVA基础之多态

    下面我为大家讲解一下JAVA基础之多态,希望大家喜欢. 多态就是事物存在的多种形态,比如你在大街上看见一只藏獒,你可以说这只藏獒真凶猛,也可以说这只狗真凶猛,还可以说这个动物真凶猛,以上三种说法其实都 ...

  5. 解释java程序所使用的命令是,Java程序的执行原理以及解释说明

    在初学Java的时候,我们安装完Java的开发环境后,就可以通过记事本等编辑工具编写程序了.推荐在Windows操作系统中使用EditPlus工具进行编写.由于我使用的是Mac OS,所以,我使用Su ...

  6. Java第一个程序的相关解释

    在Java程序中类的定义有两种 (1)public class 类名称 代码如下(1) public class Hello { //这里定义了一个类public static void main(S ...

  7. c语言dll注入器,Module Injector下载-Module Injector(DLL动态库注入器)下载1.0.0.0-西西软件下载...

    Module Injector是一款非常强大的DLL动态库注入器,专业性较强,完全免费使用哦,内置许多亮眼功能,大大方便C语言编译,为广大热爱编程的朋友提供更多支持,有需要的朋友欢迎下载使用. 软件简 ...

  8. 【Java】博客系统——详细解释+代码+详细注释(课设必过)

    目录 前言 博客系统简要分析 一.数据库的设计 1.1 分析 1.2 代码实现(创建数据库和表) 二.封装数据库(JDBC代码的编写) 2.1.首先通过创建Maven项目,基于Small Tomcat ...

  9. Java中的关于static的解释和应用

    1.什么是高级类的特性修饰符?分别可以修饰哪些内容? 答:1). static: 修饰属性.方法.块.内部类 2). final: 修饰类.常量属性.方法.局部常量 3). abstract: 修饰类 ...

最新文章

  1. dubbo的provider和consumer的demo
  2. [唐胡璐]Java操作Sql Server 2008数据库
  3. 用Python拼图发一个高逼格的朋友圈
  4. 计算机网络专业的基础知识,计算机网络专业基础知识.doc
  5. sqlserver多表联查分页
  6. CCPC-Wannafly Winter Camp Day8 (Div2, onsite) 补题
  7. C#命名空间与类名的冲突
  8. 在linux安装光盘启动不了,linux光盘启动
  9. 集合差异比较算法及性能测试
  10. vs生成命令和属性的宏
  11. IIS 10 安装URLRewrite组件 方式
  12. 初始化string对象的方式
  13. 计算机演示文稿知识点,计算机基础知识:PowerPoint常用操作(一)
  14. Pano2VR制作热区激活面板
  15. DenseBox Unifying Landmark Localization with End to End Object Detection
  16. 常见开关电源优缺点对比
  17. 北京中亦安图科技股份有限公司企业介绍_脑图
  18. linux上读取不到库文件,linux中make找不到库文件-lmpi的问题
  19. cad指示箭头快捷键命令_Auto CAD2014画箭头快捷键是什么啊??
  20. 化妆品企业迎来的机遇和挑战

热门文章

  1. 【零基础学习PHP】PHP语言基础
  2. 28.纯 CSS 绘制一个世界上不存在的彭罗斯三角形
  3. 自媒体多平台分发,如何多赚钱,这次给你讲明白,收藏备用
  4. linux通配符和正则表达式
  5. linux通配符 ,Linux通配符知识入门详解
  6. c语言求5名同学三科平均成绩,用C语言编写,某班有5名同学,三科成绩!通过键盘输入每名同学每门课的成绩!统计每人的不及格科目,输出学号、各门成绩、不及格科目数。...
  7. Postgresql 通过 While 循环插入测试数据
  8. delphi用indy实现php后台的文件上传下载
  9. 国外网友分享在Udemy、Skillshare 和 Gumroad 上发布了相同的课程——我学到了什么
  10. matlab图像处理(笔记)