Guice (英音同 'juice[果汁]') 是一个为 JDK8 及以上提供的轻量依赖注入框架.

三级标题

/**
* Animal
*/
interface Animal {
void think(String sth);
} /**
* Dog
*/
class Dog implements Animal {
@Override
public void think(String sth) {
Logger.getGlobal().info("DOG " + sth);
}
} /**
* Cat
*/
class Cat implements Animal {
@Override
public void think(String sth) {
Logger.getGlobal().info("CAT " + sth);
}
}

三级标题

var injector = Guice.createInjector(new AbstractModule() {
@Override
protected void configure() {
bind(Animal.class).annotatedWith(Names.named("Dog")).to(Dog.class);
bind(Animal.class).annotatedWith(Names.named("Cat")).to(Cat.class);
}
});

四级标题

public class App {
Animal animal; @Inject
App(@Named("Cat") Animal animal) {
this.animal = animal;
}
}

三级标题

public static void main(String[] args) {
var injector = ...;
var app = injector.getInstance(App.class);
app.animal.think("sth");
}

果汁 DI 介绍的更多相关文章

  1. [Android]使用Dagger 2依赖注入 - DI介绍(翻译)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5092083.html 使用Dagger 2依赖注入 - DI介 ...

  2. 02Spring_Ioc和DI介绍

    什么是IOC? IoC: 控制反转, 解决程序对象紧密耦合问题(工厂+反射+ 配置文件), 将程序中原来构造对象的权限,交给IoC容器来构造,当程序需要对象,找IoC容器获取.

  3. [Android]Dagger2Metrics - 测量DI图表初始化的性能(翻译)

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/5098943.html Dagger2Metrics - 测量D ...

  4. [Solution] DI原理解析及Castle、Unity框架使用

    本节目录 DI介绍 DI基本原理 DI框架 Castle Windsor Unity Autofac Spring.Net DI介绍 控制反转(Inversion of Control,英文缩写为Io ...

  5. Spring 简单使用IoC与DI——XML配置

    目录 Spring简介 导入jar包 Spring配置文件 Spring的IoC IoC简介 快速使用IoC Spring创建对象的三种方式 使用构造方法 使用实例工厂 使用静态静态工厂 Spring ...

  6. Spring中IOC与DI的的区别

    依赖注入的前提: 有IOC的环境,也就是将必须对象的创建权交给了Spring. DI 介绍 Dependency Injection 依赖注入.需要有IOC 的环境,Spring 创建这个类的过程中, ...

  7. Spring框架学习笔记(1)——控制反转IOC与依赖注入DI

    Spring框架的主要作用,就是提供了一个容器,使用该容器就可以创建并管理对象.比如说Dao类等,又或者是具有多依赖关系的类(Student类中包含有Teacher类的成员变量) Spring有两个核 ...

  8. Spring4学习回顾之路02—IOC&DI

    IOC&DI介绍 ●IOC:(Inversion of Control) :控制反转(反向获取资源) 其思想是反转资源获取的方向.传统的资源上查找方式要求组件向容器发起请求查找资源,作为回应, ...

  9. 3、Spring的DI依赖注入

    一.DI介绍 1.DI介绍 依赖注入,应用程序运行依赖的资源由Spring为其提供,资源进入应用程序的方式称为注入. Spring容器管理容器中Bean之间的依赖关系,Spring使用一种被称为&qu ...

随机推荐

  1. idea 在创建maven时没有src的解决方法

    在创建maven时    加上archetypeCatalog=internal

  2. Issues in multiparty dialogues(科普性质)

    多人对话过程中存在的问题: 1)对于双方对话:存在明显的Speaker和Listener/addressee.但对于多人会话:就存在很多种情况.Clark[6]给出了对listener的分类

  3. 分布式事务(Seata)原理 详解篇,建议收藏

    前言 在之前的系列中,我们讲解了关于Seata基本介绍和实际应用,今天带来的这篇,就给大家分析一下Seata的源码是如何一步一步实现的.读源码的时候我们需要俯瞰起全貌,不要去扣一个一个的细节,这样我们 ...

  4. 面试突击65:为什么要用HTTPS?它有什么优点?

    说到 HTTPS 相信大部分人都是不陌生,因为目前我们使用的绝大数网站都是基于 HTTPS 的,比如以下这些: 那么问题来了,他们为什么要使用 HTTPS 呢?HTTPS 有哪些过人之处呢? 1.HT ...

  5. CTO与CIO选型数据中台的几大建议

    企业数字化转型离不开企业数字化技术的配备.但企业在选择数字化技术时也面临着一个问题,就是如何在大胆采用先进的数字化技术和对技术进行投资之间找到平衡,将投资风险降到最低,毕竟错误的技术选型会给企业带来不 ...

  6. 【问题解决】Axios调用文件下载获取不到文件名

    问题描述 自己开发了一个后端下载文件的接口,然后通过浏览器直接访问这个接口,浏览器能正确得到文件名并下载: 而使用Axios时发现获取不到,经过打印响应体发现响应头里没有文件名 而Java后端代码里是 ...

  7. 零基础学Java(8)数组

    数组 数组存储相同类型值的序列. 声明数组 数组是一种数据结构,用来存储同一类型值的集合.通过一个整型下标(index,或称索引)可以访问数组中的每一个值.例如,如果a是一个整型数组,a[i]就是数组 ...

  8. 判断语句的嵌套和switch判断

    Scanner scanner = new Scanner(System.in);int i = scanner.nextInt();int i2 = scanner.nextInt();if (i& ...

  9. NOIP提高组模拟赛26

    A. LCIS 蓝书原题,CF10D 弱化版 首先直接把 LIS 和 LCS 合起来设计一个 DP . 设 \(dp_{i,j}\) 表示 \(A_{1\dots i}\) 和 \(B_{1\dots ...

  10. [b01lers2020]Welcome to Earth-1

    1.打开之后界面如下,查看源代码信息,发现chase文件,结果如下: 2.访问chase文件会一直跳转到die界面,那就只能抓包进行查看,发现leftt文件,结果如下: 3.访问leftt文件并查看源 ...