小编cha*_*raj的帖子

如何以推荐的方式在Gradle插件中注入依赖项?

我正在编写一个自定义插件并对其进行测试,我想注入模拟实现。它不仅用于测试,而且从API角度来看,我想根据上下文注入不同的实现。我目前正在使用Gradle 2.6,并且我了解它支持某种形式的依赖注入。我不想使用Spring / Guice / HK2,因为Gradle本身支持它。但是,我找不到如何使用Gradle 2.6 API注入依赖项的任何信息。

例如:

 class CustomTask extends DefaultTask {

       private SomeInterface interface

       @Inject
       CustomTask(SomeInterface interface) {}

       @TaskAction
       public void executeTask() {
           interface.executeSomething()
       }
 }
Run Code Online (Sandbox Code Playgroud)

因此,从本质上讲,我想弄清楚在何处定义不同实例的绑定,SomeInterface以及将其注入任务或其他任何自定义类的机制。

dependency-injection gradle gradle-plugin

6
推荐指数
1
解决办法
2142
查看次数

带有循环依赖的 HK2 注入

我使用 HK2 作为依赖注入框架。我正在我的应用程序中实例化一个状态机。因此,A <-> B 是很有可能的,因为根据输入,我们可以从 B 转换回 A。

@Singleton 
class StateManager extends SomeInterface{

    @Inject
    private B b;

    @Inject
    private A a;
}

@Singleton 
class A extends State{

    @Inject
    private B b;

    @Inject
    private StateManager sm;

}

@Singleton 
class B extends State{

    @Inject
    private A a;

    @Inject
    private StateManager sm;
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能实现这样的目标?上面的例子只是为了说明。我有比这更多的州。我试图看看它是否是重复的,但找不到一个可以处理的。当我尝试ServiceLocator.getService(StateManager.class)获取此图时,出现循环依赖异常。做这样的事情有什么好处呢?

java dependency-injection hk2

1
推荐指数
1
解决办法
1344
查看次数

标签 统计

dependency-injection ×2

gradle ×1

gradle-plugin ×1

hk2 ×1

java ×1