繁体   English   中英

没有 bean 有资格注入到注入点[JSR-365 5.2.2]

[英]No bean is eligible for injection to the injection point[JSR-365 5.2.2]

大多数时候,我在基于 MicroProfile 的微服务中使用 @Inject 注释,我得到“没有 bean 有资格注入到注入点 [JSR-365 5.2.2]”作为警告。 这个警告的原因是什么?为了克服它可以做些什么? 比如说。 我为属性文件注入编写了代码-

@Path("/configProperty")
@Singleton
public class ConfigPropertyResource{
    
    @Inject
    @ConfigProperty(name = "username")
    private String username;

    @GET
    @Path("/mp-config")
    @Produces(MediaType.APPLICATION_JSON)
    public Response mpConfig() {
        Map<String, Object> configProperties = new HashMap<>();
        return Response.ok(configProperties).build();
    }
}

现在在 @Inject 注释处,它显示一个警告标志,其中包含建议-没有 bean 有资格注入到注入点 [JSR-365 5.2.2]。

我正在使用带有 Wildfly 19.1 的 Microprofile 3.3 版作为运行时。

注意:通过添加@SuppressWarnings("cdi-ambiguous-dependency"),它消失了,但它没有意义。

我认为这是您使用的 IDE 的问题 由于 Eclipse MicroProfile Config 使用众所周知的 CDI 注释,如@Inject ,您的 IDE 尝试为您提供检查是否有可注入的 CDI bean 的支持。 IDE 的这种 CDI 支持可能无法识别您实际上使用的是 Eclipse MicroProfile,因此经典的 CDI 支持认为您想要注入另一个 bean 而不是属性。

如果您在运行时没有遇到任何问题,并且只有您在抱怨 IDE,请更新 IDE(如果它支持 MicroProfile 配置)或忽略/抑制此警告。

我正在使用 IntelliJ IDEA 2020.2,并且在使用 Eclipse MicroProfile Config 开发应用程序时没有遇到此类问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM