Большую часть времени я использую аннотацию @Inject в микросервисах на основе MicroProfile. Я получаю в качестве предупреждения «Нет 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), он исчез, но это не имело смысла.