【问题标题】:No bean is eligible for injection to the injection point[JSR-365 5.2.2]没有 bean 有资格注入到注入点[JSR-365 5.2.2]
【发布时间】:2020-11-25 22:47:33
【问题描述】:

大多数时候,我在基于 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]。

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

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

【问题讨论】:

    标签: java jboss wildfly microprofile eclipse-microprofile-config


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-11-15
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多