首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏软件开发-青出于蓝

    Guice学习 原

        Guice的github地址: https://github.com/google/guice/wiki/Motivation     这个例子很简单,如果会点Guice,那么不需要再往下看了 1.添加依赖 List-1 pom.xml中添加如下依赖 <dependency> <groupId>com.google.inject</groupId> <artifactId>guice List-5 public class Main { public static void main(String[] args) { Injector injector = Guice.createInjector

    63630发布于 2019-04-15
  • 来自专栏码洞

    Guice快速入门

    ,然后从Injector拿到你想要的对象就可以了,Guice会自动装配依赖树。 Guice的启动速度是很快的,在一个大型应用中,Guice装配所有的模块决不会超过1s。Guice是一个非常干净的依赖注入框架,框架除了依赖注入功能之外,没有任何其它非相关模块功能。 Guice里最常用的两个注解就是@Singleton和@Inject,Singleton表示构建的对象是单例的,Inject表示被标注的字段将使用Guice自动注入。 Guice需要实例化对象,请确保相应被实例化的对象有默认构造器。 我们可以使用Guice Module定义装配规则,它相当于Spring的XML文件,只不过它的装配规则都是使用代码定义的。

    1.1K00发布于 2018-08-15
  • 来自专栏乐百川的学习频道

    Guice 快速入门

    这时候我们可以考虑使用Guice。本文参考了Guice官方文档,详细信息可以直接查看Guice文档。 基本使用 引入依赖 如果使用Maven的话,添加下面的依赖项。 Guice配置完之后,我们需要调用Guice.createInjector方法传入配置类来创建一个注入器,然后使用注入器的getInstance方法获取目标类,Guice会按照配置帮我们注入所有依赖。 安装Guice Servlet扩展 要在Servlet项目中集成Guice,首先需要安装Guice Servlet扩展。如果使用Maven,添加下面的依赖。 下面这个表格来自于Guice文档,我们可以看到JSR-330和Guice注解基本上可以互换。 以上就是Guice的基本知识了。如果需要更详细的使用方法,请参考Guice文档。如果有兴趣还可以看看我的CSDN代码,包含了我的Guice练习代码。

    1.9K10编辑于 2022-05-05
  • 来自专栏xdecode

    Guice之IOC教程

    Guice 在上一篇博客中, 我们讲解了Spring中的IOC示例与实现, 本文着重介绍Guice注入以及与Spring中的差异. Guice 3.0支持 jdk 1.6, 如果运行报错ClassNotFoundException: javax.inject.Provider, 则需要导入javax.inject包. Module容器 Guice中容器即Module, 用于绑定接口 : 实现类, 类似于Spring中的applicationContext.xml. 这是因为如果对象不属于Guice托管, 那么他也无法得到Guice注入. 如果一定要new GuiceObjectDemo()呢? 动态参数注入 这个稍微麻烦一点, 需要引入guice-assistedinject, 利用FactoryModuleBuilder构造一个factory实行注入.

    2.3K90发布于 2018-01-24
  • 来自专栏小旋锋的大数据专栏

    Google Guice 快速入门

    Guice是Google开源的一个依赖注入类库,相比于Spring IoC来说更小更快。Elasticsearch大量使用了Guice,本文简单的介绍下Guice的基本概念和使用方式 基本使用 1. 我们就可以开始使用Guice了 项目骨架 我们来假设一个简单的项目框架。 方法获取目标类,Guice会按照配置帮我们注入所有依赖。 Servlet扩展 要在Servlet项目中集成Guice,首先需要安装Guice Servlet扩展。 下面这个表格来自于Guice文档,我们可以看到JSR-330和Guice注解基本上可以互换。 ? JSR-330 Guice官方推荐我们首选JSR-330标准的注解。 以上就是Guice的基本知识了。

    2.3K40发布于 2019-01-21
  • 来自专栏小旋锋的大数据专栏

    Elasticsearch 中的 Guice

    前言 Elasticsearch 源代码中使用了Guice框架进行依赖注入. 为了方便阅读源码, 此处我先通过模仿ES guice的使用方式简单写了一个基本Demo 方便理解, 之后再来理一下ES的Guice使用. 编写的测试类原理图如下: ? ES Guice Demo 总共有两个Module,一个是ToolModule,用于绑定IAnimal接口、ITool接口以及Map对象. 另一个是HumanModule 用于绑定Person对象。 的使用 ES中TransportClient初始化时的Guice的使用是这样的, 如下图所示 ? 处下载 参考: kason_zhang Elasticsearch Guice 的使用 ---- 更多内容请访问我的个人博客:http://laijianfeng.org/

    1.5K10发布于 2019-01-21
  • 来自专栏测试开发架构之路

    Google开源依赖注入框架-Guice指南

    文中提到高效实现依赖注入的工具Guice,本文就介绍一下这款Google开源的依赖注入框架Guice及其使用方法。 1. 那么何时使用在代码中使用 Guice 进行注入呢?一般来说,如果在你的应用代码中业务对象 (Business Objects) 之间的关系或者依赖需要维护的话,你就可以使用Guice 进行注入。 Guice bind Binding is to Guice as wiring is to Spring。 隐式注入 Guice 还提供隐式注入一些通用组件,例如Injector和java.util.Logger的实例等。 Guice Scope机制 Guice支持我们在其他DI框架中逐渐习惯的Scope和Scope机制。

    2.8K10编辑于 2022-08-01
  • 来自专栏iSharkFly

    Junit 5 如何使用 Guice DI

    Guice 是一个依赖注入的小清新工具。相比 Spring 的依赖管理来说,这个工具更加小巧,我们可以在测试中直接使用。 Junit 5在 Junit 中使用就没有那么方便了,因为 Junit 没有 Guice 的注解。你需要手动写一个类,在这个类中,对 Injector 的模块进行配置。 package com.ossez.wechat.oa.api.test;import com.google.inject.AbstractModule;import com.google.inject.Guice java.io.IOException;import java.io.InputStream;import java.util.concurrent.locks.ReentrantLock;/** * Init Guice https://www.ossez.com/t/junit-5-guice-di/14395

    64730编辑于 2023-04-24
  • 来自专栏iSharkFly

    TestNG 中使用 Guice 来进行依赖注入

    Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC)。Guice非常小而且快。 Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数的任意方法,而不仅仅是setter方法)进行注入。 定义一个 Guice Module这个 Guice Model 会实现 Module 接口。然后对需要注入的类进行绑定。 相对 Junit 测试框架来说,TestNG 使用 Guice 更加方便。如何在 Junit 中使用 Guice ,请参考文章:Junit 5 如何使用 Guice DI 中的内容。 https://www.ossez.com/t/testng-guice/14396

    91140编辑于 2023-04-24
  • 来自专栏低级Java知识传播者

    Maven IOC 容器-- Guice内部有什么

    Google Guice容器内部有什么 前言 Maven系列,好几天没写了,主要是这几天被Google Guice卡住了,本来是可以随便带过Guice,讲讲guice的用法就够了(这个已经讲了,在前面的文章 ),但是,想着guice作为maven的底层IOC容器,对guice的理解深入一些,对后续的Maven源码学习也会比较有帮助,因此,就在那开始分析guice的源码。 guice作为一个仅次于Spring的IOC容器,代码也不是那么好懂的,毕竟也迭代了十来年了;代码量不少,另外,我感觉代码也有点绕,就看得真心有点打瞌睡。 针对Guice的源码分析法 一般来说,我debug源码,都是从头开始,单步debug过去,很多时候,这种IOC框架啥的,启动非常复杂,一个小时也跟不完一趟;过程冗长,一篇几千字的文章基本都讲不完,读者也记不住那么多东西 key就是对应的接口类,value就是说:怎么去实例化一个这个类型的实例出来,所以呢,guice内部,为了统一,基本把value这部分统一成了一个工厂。如下: 而工厂类里是什么样呢?

    93730发布于 2021-09-23
  • 来自专栏简单就是美!

    Spring 2.5 Perfomance Improvements 200% 直逼 Guice

    change the default behavior from "prototype" to "singleton", and I saw that spring 2.5 was faster than Guice Here are some benchmarks (there is variability based on the runs)     * Spring 2.0 vs. guice 1.0: Concurrent: Spring is 5-10X slower     * Spring 2.0.6 vs. guice 1.0:           o Prototype: Single Concurrent: Spring:Guice ~2:3     * Spring 2.14m vs. guice 1.0:           o Prototype: Single thread Concurrent: Spring is 1-1.5X faster     * guice 1.0:           o Prototype: Single thread vs.

    43840发布于 2019-02-28
  • 来自专栏xdecode

    使用Dagger2做静态注入, 对比Guice.

    Dagger 依赖注入的诉求, 这边就不重复描述了, 在上文Spring以及Guice的IOC文档中都有提及, 既然有了Guice, Google为啥还要搞个Dagger2出来重复造轮子呢? 而Dagger跟Guice最大的差异在于, 他是编译期注入的, 而不是运行时. 他生成的代码可以直观的调试, 也不是通过反射, 而是通过构建工厂类. 下面我们用代码来简单演示一下. 写法很简单, 跟Guice类似, 我们只需要在reportpage成员上加@Inject注解. 此时我们就要跟Guice里一样, 使用@Named注解来标识了 1 @Named("new") 2 public ReportPageProvider reportPage; 调用的时候也很简单 // 对象会在get()方法调用的时候触发初始化 4 job.oldReportPage.get().print(); 到这边就结束了, 可以看到Dagger使用上跟Guice

    3.2K70发布于 2018-01-24
  • 来自专栏低级Java知识传播者

    Maven容器的下半场:Guice,听说仅次于Spring

    Container退任后,取而代之的底层容器是Guice。 这里说,把组件解析后,存放到了Guice容器中,这个也不是特别准确,更准确的说法是,放到了基于Guice进行了一层封装的一个容器中,这个容器叫做:sisu,由eclipse在维护这个开源项目(https Guice是什么 根据wiki的描述,Guice就是依赖注入框架,由google开源。主要特点就是:支持以java注解的方式配置组件及依赖。 Guice中,存东西的多种方式 概览 存东西,在Guice的文档里,名词叫做Binding,中文就是绑定吧。 基于这两个问题呢,方法肯定是有的,所以,Maven也足够聪明,没有直接基于Guice,而是选择了基于Guice封装后的Sisu,而Sisu就可以解决我们说的问题,支持类路径扫描之类的。

    1.5K40发布于 2021-09-23
  • 来自专栏BAT的乌托邦

    3分钟带你了解轻量级依赖注入框架Google Guice【享学Java】

    但本文并不聊它,而是介绍一款谷歌开源的轻量级依赖注入框架:Guice。 ---- 正文 正所谓谷歌出品,必属精品,况且Guice还出自于它的广告这种多金部门,自然也不例外。Google Guice被大量应用于谷歌内部,然后2010年开源出来。 ---- Google Guice Google Guice作为一个纯粹的DI框架,主要用于减轻你对工厂的需求以及Java代码中对new的使用。 @6fb0d3ed com.yourbatman.eurekaclient.guice.Dog@24b1d79b com.yourbatman.eurekaclient.guice.Dog@68ceda24 ;Guice只记录绑定关系,然后在运行时有需要的时候帮你完成注入 ---- 优缺点 Spring 的优缺点此处不做说明,主要描述Guice它的DI领域的优缺点。

    6.3K21发布于 2020-03-26
  • 来自专栏BAT的乌托邦

    三十四、借助Guice的DI依赖管理,轻松实现一键启动Eureka Client端完成服务注册

    总结 关注A哥 前言 回想一下,在本系列第一篇文章就有提到过,Eureka它是使用轻量级DI框架:谷歌的Guice来管理其依赖的。 Eureka选择了谷歌的轻量级DI框架Guice来化解该难题。本文将尝试使用Guice来自动化管理其各个组件,一键启动 Eureka Client端,让其协调工作起来。 说明:在理解了本文之后再去阅读Spring Cloud整合Eureka,那就“易如反掌”了 提示:在阅读本文之前,请务必确保你已经了解Guice是什么,大概怎么玩。 ---- Spring Cloud整合Guice了吗? 答案:完全没有。虽然说Spring和Guice均为DI框架,但是其实他俩是可以完成整合、和谐相处的。 但实际上是,在Spring Cloud中使用Eureka时,它完全没有使用到Guice,而是把所有Eureka的组件均交由Spring容器管理,完全的自己组织。

    1.1K20发布于 2020-11-24
  • 来自专栏程序员的成长之路

    Google 开源的依赖注入库,比 Spring 更小更快!

    来源:GinoBeFunny zhuanlan.zhihu.com/p/24924391 Guice是Google开源的一个依赖注入类库,相比于Spring IoC来说更小更快。 Elasticsearch大量使用了Guice,本文简单的介绍下Guice的基本概念和使用方式。 学习目标 概述:了解Guice是什么,有什么特点; 快速开始:通过实例了解Guice; 核心概念:了解Guice涉及的核心概念,如绑定(Binding)、范围(Scope)和注入(Injection); 最佳实践:官方推荐的最佳实践; Guice概述 Guice是Google开源的依赖注入类库,通过Guice减少了对工厂方法和new的使用,使得代码更易交付、测试和重用; Guice可以帮助我们更好地设计 API,它是个轻量级非侵入式的类库; Guice对开发友好,当有异常发生时能提供更多有用的信息用于分析; 快速开始 假设一个在线预订Pizza的网站,其有一个计费服务接口: public interface

    1.5K10发布于 2020-02-21
  • 来自专栏芋道源码1024

    Google 开源的依赖注入库,比 Spring 更小更快!

    Guice是Google开源的一个依赖注入类库,相比于Spring IoC来说更小更快。Elasticsearch大量使用了Guice,本文简单的介绍下Guice的基本概念和使用方式。 学习目标 概述:了解Guice是什么,有什么特点; 快速开始:通过实例了解Guice; 核心概念:了解Guice涉及的核心概念,如绑定(Binding)、范围(Scope)和注入(Injection); 最佳实践:官方推荐的最佳实践; Guice概述 Guice是Google开源的依赖注入类库,通过Guice减少了对工厂方法和new的使用,使得代码更易交付、测试和重用; Guice可以帮助我们更好地设计 API,它是个轻量级非侵入式的类库; Guice对开发友好,当有异常发生时能提供更多有用的信息用于分析; 快速开始 假设一个在线预订Pizza的网站,其有一个计费服务接口: public interface 首先我们需要告诉Guice如果找到接口对应的实现类,这个可以通过模块 来实现: public class BillingModule extends AbstractModule { @Override

    1.3K20发布于 2021-01-25
  • 来自专栏低级Java知识传播者

    Maven底层容器Plexus Container的前世今生,一代芳华终落幕

    对这个历史感兴趣的,可以直接看: https://blog.sonatype.com/2010/01/from-plexus-to-guice-1-why-guice/ 为什么呢? 因此,google 在2007年的时候,就推出了一个轻量级的依赖注入框架,叫google guice。 ,以后就只管用了,而guice的维护升级,自然有Guice的开源团队去跟进。 接下来,是Guice的时代,而现在,十多年后的2021年,Guice依然稳定地支撑着Maven。 Guice足够优秀,在此之前,我竟然几乎没什么了解,Guice在哪些地方有应用呢,简单列举几个: google内部 scalatest TestNG Caffeine Cache Spring Security

    72010发布于 2021-09-23
  • 来自专栏happyJared

    IDEA快捷键拆解系列(二):File篇

    标签库描述 ) Spring Config ( Spring配置文件 ) Diagram ( 图表建模 ) Java Class Diagram Module Dependencies Google Guice ( 谷歌开源的一款依赖注入框架 ) Guice Module Guice Provider Guice Binding Annotation Guice Scope Annotation Guice

    82810发布于 2018-09-20
  • 来自专栏北京宏哥

    Java自动化测试框架-09 - TestNG之依赖注入篇 (详细教程)

    -依赖注入 TestNG支持两种不同类型的依赖项注入:本机(由TestNG本身执行)和外部(由诸如Guice的依赖项注入框架执行)。 1.1-本机依赖项注入 TestNG允许您在方法中声明其他参数。 依赖注入 如果您使用Guice,TestNG为您提供了一种简单的方法,即可通过Guice模块注入测试对象: /** * @author 北京-宏哥 * * Java自动化测试框架-09 - TestNG 您的createModule方法应返回一个Guice模块,它将知道如何实例化此测试类。您可以使用测试上下文来查找有关您的环境的更多信息,例如在testng.xml中指定的参数等。 通过父模块和guice-stage套件参数,您将获得更大的灵活性和Guice功能。 guice-stage可让您选择用于创建父注射器的Stage。默认值是DEVELOPMENT。 还将使用该模块获取特定于测试的Guice模块和模块工厂的实例,然后将为每个测试类创建子注入器。通过这种方法,您可以在父模块中声明所有公共绑定,也可以在模块和模块工厂中注入在父模块中声明的绑定。

    2.3K30发布于 2019-11-10
领券