首页 > TAG信息列表 > guice

轻量级DI框架Guice使用详解

背景 在日常写一些小工具或者小项目的时候,有依赖管理和依赖注入的需求,但是Spring(Boot)体系作为DI框架过于重量级,于是需要调研一款微型的DI框架。Guice是Google出品的一款轻量级的依赖注入框架,使用它有助于解决项目中的依赖注入问题,提高了可维护性和灵活性。相对于重量级的Spring(

hive on spark 客户端连接超时

Hive on spark,执行时报错 解决: 在yarn web界面上点击执行失败的任务: 从这上面可以看出,hdfs://master/hive/spark_jars/guice-4.0.jar有问题 找到机器http://datamiddle-249:8042,查看nodemanager日志 日志里面搜索刚才的任务 可以看见如下日志 可以看出,guice-4.0.jar文

Google Guice的使用方式

Google Guice(读音:juice)是从Google AdWords项目开源出来的一款轻量级的依赖注入(DI,Dependency Injection)框架(类似于spring boot依赖注入框架) 注解:@Inject 注入类(跟spring 的Autowired类似) 注解:@Singleton单例模式(跟spring 的Singleton类似) 主类: package com.zhangmen; impor

Google Guice之AOP

为增强依赖注入功能,Guice支持方法拦截器。通过这个特性可以让方法在每次执行前调用一个匹配的方法。这适用于横切性关注点(切面),例如事务控制,权限与日志记录等。因为拦截器将一个问题分割成切面而不是对象;所以拦截器使用又被称为面向切面编程(AOP)。 大多数开发者不会直接编写方法

Google Guice之注入方式

在Guice中,注入方式有如下几种: 一、构造器注入(Constructor Injection) 使用构造器注入只要在构造方法上添加一个@Inject注解,该构造方法接收一些依赖参数,大多数的构造方法将这些参数赋值给final字段。 public class RealBillingService implements BillingService { private final

Google Guice之绑定方式

在Guice中,注入器的工作是装配对象图,当请求某一类型实例时,注入器根据对象图来判断如何创建实例、解析依赖。要确定如何解析依赖就需要通过配置注入器的绑定方式。 要创建绑定(Binding)对象,可以继承自AbstractModule类,然后覆盖其configure方法,在方法调用bind()方法来指来定每一次绑定

Google Guice之牛刀小试

Google Guice由google推出的一开源软件,是超轻量级的,下一代的,为Java 5及后续版本设计的依赖注入容器,其功能类似于如日中天的Spring。 下面我们就来了解一下Guice,在此之前,先看一个官方例子:在应用程序中,要把所有的东西装配起来是一件很乏味的事件,这要涉及到连接数据,服务,表现层类等方面

How Do I test James Distributed Version with JMeter?

Because of my work, I studied James 3.5 distributed version. In order to confirm how much concurrent users it can support under the existing hardware configuration, I made a stress test on it with JMeter. 1. Hardware Hardware 1:Two physical machines, and

java-如何使用Guice定义动态和即时绑定?

我正在尝试将Guice用于基于TestNG的测试框架.该框架分析了测试类的依赖关系,并提供了它们,从而消除了在测试中构建它们的需要. Guice与注入有关,我认为非常适合该框架.但是问题是创建注射器后如何定义绑定?这是必需的,因为测试可能会覆盖绑定,以用模拟替代默认实现. 除此之外,在某些

使用内置的Guice Injection注释静态java.util.Logger实例的正确习惯是什么?

我想开始使用Guice 3.x神奇地注入我的java.util.logging.Logger实例. 这是我要开始工作的代码片段: @Singleton public class Main { @Inject private static final Logger logger; ... } 这似乎不起作用. 无论我在声明中使用什么范围,我都在线程“主” java.lang.NullPo

java-将多个接口自动绑定到Guice中的一个impl

我有一个如下所示的设计,其中一个接口扩展了多个父接口,并且该接口的一种实现. 在我的客户端类中,我只想依赖一个或多个父接口,而不是ZooKeeperClient.我觉得这是一个更好的设计,因为它减少了我的客户端类的依存关系的表面积,并且还使得在测试中模拟事物更容易. 例如 @Inject publ

Java-Guice vs EJB,用于注入池

EJB池和Guice之间有什么比较? Guice可以替代EJB吗? 在EJB会话中,将从池中分配bean以便快速实例化,但是Guice呢? RGDS解决方法:我相信,没有,Guice无法完全取代EJB. Guice仅实现JSR-330,CDI同时实现JSR-330和JSR-299. EJB是另一回事. 您可以使用CDI注入EJB.不能确定,但​​是我坚信由于J

java-MyBatis-guice 3.3多个数据源属性scriptrunner

我正在使用MyBatis-guice 3.3使用Java Properties对象和ScriptRunner连接到第一个数据库,以运行一些脚本: Environment environment = injector.getInstance(SqlSessionFactory.class).getConfiguration().getEnvironment(); DataSource source = environment.getDataSource(); Scr

java-Guice嵌套通用类型绑定

我正在使用guice进行依赖项注入,并编写了一个提供程序,该提供程序返回HashMap< String,HashMap< String,String>>.如何将HashMap.class与此提供程序绑定? 我查看了this,但无法弄清楚如何将TypeLiteral用于HashMap< K,V>中的HashMap值(V).因此,我只是在< K,V>中替换了V.与对象.目前,

java-使用Guice注入通用接口子类型的实现

我定义了以下API: public interface Input<I> { Collection<? extends I> read(); } public interface Transformer<O, I> { Collection<? extends O> transform(Collection<? extends I> inputData); } public interface Output<O>

java-如何使用Guice使Multibinder与FactoryModuleBuilder和泛型一起使用?

我读过Google guice – multibinding + generics + assistedinject,但它似乎无法解决我的特定情况.这是我所拥有的: 与FactoryModuleBuilder一起使用的接口 public interface IFilterFactory<T extends IFilter> { T create(FilterConfig config); } public interface IFilterO

java-使用Guice注入运行时生成的值

我有一个Context类,它是一个在运行时逐渐填充的键值对. 我想创建需要从上下文中获取一些值的对象实例. 例如: public interface Task { void execute(); } public interface UiService { void moveToHomePage(); } public class UiServiceImpl implements UiService {

java-Guice.注入构造函数

我有一个单身人士: public class MySingleton{ public static getInstance(){//typical singleton getInstance ... } //fields private static volatile instance; @Inject private AnotherClassInstanceThatIWantToInjectHere anotherClassInst_BlaBla; priva

java-Guice链接绑定与@Provides方法

我有这个问题. 考虑一下我有类似的类定义: public interface ABCInterface { } 及其实现: public class ABCImpl { @Inject private XYZ xyz; } 当Guice Config像这样时: public class MasterConfig extends AbstractModule { @Override protected void co

java-向Guice模块添加新的绑定?

我有自己的Guice模块,在configure方法中,我提供了自己的绑定,如下所示- public void configure() { MapBinder<String, ExternalDatabaseConnection> m = MapBinder.newMapBinder(binder(), String.class, ExternalDatabaseConnection.class); m.addBinding("DBServer1").

java-Guice字段注入不起作用(返回null)

我在使用Guice使用null值时遇到问题. Nex我为您展示了类似情况的示例.我知道场注入是一种不好的做法,但是我希望它在演示中像这样工作 我有一个名为B的具体类(这是我要注入的类): class B{ @Inject public B(){} public void fooMethod(){ System.out.printl

java-注入数据库实例以实现静态和实例可访问性

我有一个与GWT的RequestFactory和关联代理一起使用的POJO. POJO同时具有静态方法(list())和实例方法(persist()),需要访问我的数据库.我的数据库连接池设置为通过Guice作为单例注入.我不确定是如何精确执行注入,以便这两种类型的方法都可以访问它? 此外,POJO的实例是使用空的构造函

Java-Guice:强制将绑定作为提供程序注入

我正在寻找一种强制某些Guice绑定仅作为提供程序注入的方法.例如,当有类似 interface ResultLogger { void log(String resultAsString); } class ResultLoggerProvider implements Provider<ResultLogger> { // ... } class ResultDisplayModule extends AbstractModul

java-如何用guice替换反射?

我长期以来使用反射将模块与“处理程序”分离. 我有一个这样设计的代码库: static enum AnimalHandlers { Dog(Dog.class), Cat(Cat.class); private final Class c; AnimalHandlers(Class class) { this.c=class; } public Class getAnimalHandler() {

android-如何在Roboguice中处理上下文单例

我正在使用@ContextSingleton标记依赖于上下文注入的单例.从RoboGuice的源代码和我自己的测试来看,它似乎在Application上下文和不同的活动上下文之间产生了差异.这是完全有道理的,至少当我将它与事件管理工具一起使用时,至少对我来说是有问题的: @ContextSingleton public class S