java injector_java – Injector Hierarchy / Child Injector解释?「建议收藏」

java injector_java – Injector Hierarchy / Child Injector解释?「建议收藏」Modules.override()在Stage.PRODUCTION中不起作用.您应该使用PrivateModule,其中绑定仅在私有模块内有效/可见,因此您可以将不同的实现类绑定到同一个接口.然后,您可以将Private模块安装到父模块,但是您必须显式公开()您希望其他模块可见的所有绑定.让我们说:DatabaseSearchModule.java(扩展PrivateModule)bind(P…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/230949.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 深度学习环境配置2——windows下的torch=1.2.0环境配置「建议收藏」

    深度学习环境配置2——windows下的torch=1.2.0环境配置「建议收藏」神经网络学习小记录48——windows下的torch=1.2.0环境配置学习前言环境内容Anaconda安装下载Cudnn和CUDA配置torch环境安装VSCODE学习前言好多人问环境怎么配置,还是出个教程吧。环境内容torch:1.2.0torchvision:0.4.0Anaconda安装最新版本的Anaconda没有VSCODE,如果大家为了安装VSCODE方便可以直接安装旧版的Anaconda,百度网盘连接如下。也可以装新版然后分开装VSCODE。链接:https://pan

    2022年6月11日
    39
  • Nginx安装阿里云SSL证书「建议收藏」

    Nginx安装阿里云SSL证书「建议收藏」1、先去阿里云申请一个免费证书阿里云地址:https://common-buy.aliyun.com/?spm=5176.14113079.0.0.5b1156a7PeYJvE&commodityCode=cas_dv_public_cn&request=%7B%22product%22%3A%22free_product%22%7D2、申请证书填写申请:验证信息3、安装证书1.将证书放到/usr/local/nginx/conf/ce…

    2022年10月3日
    0
  • PreparedStatement详解

    PreparedStatement详解JDBC初步.主要讲了基本访问数据库的步骤.其中第四步提到了用Statement去执行SQL语句.这里介绍个Statement的子类PreparedStatement.PreparedStatement(预处理执行语句)相比其父类Statement主要有以下几个优点.1.可以防止SQL注入.               2.在特定的驱动数据库下相对效率要高(不绝对)   

    2022年6月2日
    39
  • C++异常处理建议收藏

    一C++异常处理机制异常处理基本思想:执行一个函数的过程中发现异常,可以不用再本函数内立即进行处理,而是抛出该异常,让函数的调用者直接或间接的处理这个问题。C++异常处理进制由三个模块组成:tr

    2021年12月19日
    40
  • mac系统安装win10双系统「建议收藏」

    mac系统安装win10双系统「建议收藏」一个月前,为了在家里学习单片机,在macbookair系统基础上,安装了win10,搞了一个双系统。在安装之前,看了很多资料,基本上提到两点,一个是准备win10镜像,一个是准备win10安装启动程序,而且至少需要一个U盘,有的也说需要两个,一个用来装win10镜像,一个用来装win10启动程序。最后动手安装的时候,一个U盘也没有使用,直接把win10镜像下载到mac系统中,然后启动mac上的磁盘管理工具,按照提示,傻瓜式的进行下一步。有两个地方需要我们手动设…

    2022年9月27日
    0
  • 激光slam综述_激光点云处理

    激光slam综述_激光点云处理1:SLAM是什么SLAM是同步定位与地图构建(SimultaneousLocalizationAndMapping)的缩写,最早由HughDurrant-Whyte和JohnJ.Leonard提出。SLAM主要用于解决移动机器人在未知环境中运行时定位导航与地图构建的问题。SLAM通常包括如下几个部分,特征提取,数据关联,状态估计,状态更新以及特征更新等。其中包括2D-SLAM和3D-SLAM。一下大概分为三种形式:Localization:在给定地图的情况下,估计机器人的位姿。SLA

    2022年8月23日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号