我刚刚开始使用Micronaut,我惊讶地发现一件事,尽管使用了注释处理器,但似乎没有任何警告可以指出何时存在依赖项注入问题。例如,当我有一个@Inject
用于带有2个具体实现的接口时。我期望我的IDE在Inject注释上提供一个编译器警告,告诉我有2种可能的绑定,因此我需要提供一个@Named
注释来消除歧义。
我的期望是不正确的,绑定问题还是仅在运行时才显示出来吗?还是我没有正确配置IDE以使用Micronaut正确地将这些DI错误通知我?
Java version: 8
IDE: IntelliJ IDEA Ultimate
Micronaut Version: 1.1.1
Build Tool: maven
答案 0 :(得分:0)
因为在编译时有2个可用并不意味着在运行时会有2个可用。
人们以另一种方式问了同样的问题,想知道为什么我们在编译时不能报告一个bean不存在,答案是仅仅因为它在编译时不存在并不意味着它赢了。在运行时不存在。您不知道在编译时会在运行时在类路径上显示什么,可以将Bean配置为根据运行时条件等条件加载。
编辑
我意识到我没有明确解决您的问题...
我的期望不正确吗,绑定问题仍然只是 在运行时显示出来,或者我没有正确配置我的IDE 使用Micronaut可以正确告知我这些DI错误?
第一部分的答案是肯定的,您的期望不正确。第二部分的答案是您的IDE配置与存在问题的行为无关。
我希望有帮助。