我在理解以下代码为何不起作用时遇到问题。
我有以下项目结构:
@Component(modules = CCModule.class)
public interface CComponent {
XXX getXXX();
}
哪里
@Module
public class CCModule {
@Provides @Singleton
public XXX provide XXX(){
return new XXX();
}
}
和
@Component(dependencies = CComponent.class, modules = AAModule.class)
public interface AComponent {
YYY getYYY();
}
哪里
class YYY {
@Inject
public YYY(XXX xxx) {
...
}
}
我将所有内容初始化为:
CComponent c_component = Dagger_CComponent.builder().cCModule(new CCModule()).build();
AComponent a_component = Dagger_AComponent.builder()
.cComponent(c_component)
.aAModule(new AAModule())
.build();
一旦编译发生,我得到以下错误:
错误:(11,1)错误:com.test.CComponent(未作用域)可能未引用作用域绑定:@Provides @Singleton
com.test.XXX com.test.CCModule.provideXXX()
我的目标是让一个组件从其他组件继承绑定,以对对象(单件)具有相同的引用。
您应该@Singleton
进行CComponent
类声明。
@Singleton
@Component(modules = CCModule.class)
public interface CComponent {
XXX getXXX();
}
错误消息中的解释:CComponent
是无作用域的,@Singleton
是作用域。Dagger 2不允许无作用域的组件使用具有范围绑定的模块。
但是,现在您将收到以下错误:
AComponent (unscoped) cannot depend on scoped components:
@Component(dependencies = CComponent.class, modules = AModule.class)
无作用域的组件不能具有范围依赖性。因此,您需要确定AComponent
范围。为此,创建自定义AScope
注释。
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface AScope {
}
并用它注释AComponent
:
@AScope
@Component(dependencies = CComponent.class, modules = AModule.class)
public interface AComponent {
}
这些是最新快照版本中出现的新要求。在相应的问题中进行了讨论,并且可能仍会更改。
我在PHP中重构旧的应用程序。 我试图使用Symfony依赖注入组件将服务注入控制器(或其他服务),但我不知道如何实现这一点,因为symphony文档比框架组件更适合使用框架。 我已经有了自己的内核,包含所有服务和控制器的容器(控制器已经注册为服务)。我的控制器从扩展AbstractController。所以我现在唯一能做的就是: 通过
我有一个这样定义的单例实例: 现在,由于一些变化,这个类必须依赖于几个(3)依赖项。因此,这些依赖项必须在这里注入。 我们如何为这样设计的Singleton类实现依赖注入? 问题是,已经有很多调用方,因此无法使 getInstance 方法来接受依赖关系。 页(page的缩写)我知道使用单例并不总是一种更干净的方式:)(这是现有的代码,我不得不忍受它:) 附注:我正在使用Guice进行依赖注入。
最近,我发现了以下问题: 当我为我的项目设置依赖项管理时,我有一个child-pom,它使用具有依赖项的插件,我想要与在我的依赖项管理中声明的依赖项同步。 在根pom中,我在依赖项管理中声明: 在子pom中,我有一个插件需要gwt-user: 但是,如果我移除gwt-maven-plugin中使用的依赖版本,编译就会失败。 是不是还有别的办法可以实现呢? PS:在maven和maven插件中有一个
我运行命令来检查我的java项目中未使用的jar,部分结果如下所述: [警告]找到未使用的声明依赖项: [警告] 组织.Spring框架工作.boot:Spring启动器:jar:2.0.3.发布:编译 [警告] 组织Spring框架工作.启动:Spring启动器测试:jar:2.0.3.发布 :编译 [警告] 组织.springframework.boot:Spring启动器-启动器-jdbc:
在我试图建立的测试中,在实现Cucumber时遇到了一些问题。以此为指导,成功地获得了测试工作Selenium:https://medium . com/@ cbuelvasc/test-automation-in-kotlin-with-Selenium-TestNG-and-page-object-model-e 2252 DBC 492 a 当我尝试在其上添加功能以及步骤定义时 - 它抱怨p
我想知道下面是否可行以及如何实现。 我正在学习Spring boot的教程,其中提到我们可以有一个父依赖项。 然后定义没有版本号的依赖项。 这将在项目依赖项中添加依赖项版本1.5.6。释放sping-boot-starter和sping-boot-starter-web。 就像那样,我想找到什么是<代码> Spring-上下文 spring-jdbc Spring测试 谢谢!