Динамическая инъекция CDI @Named - PullRequest
2 голосов
/ 04 мая 2019

Я хочу внедрить компонент @Named на основе конфигурации или переменной среды (или достичь той же цели с помощью других средств). Например я хочу заменить

@Inject
@Named("myredBean")

с

@Inject
@Named("{bean.color}")

или аналогичный ...

Я не использую Spring, поэтому я бы предпочел решение, отличное от Spring! Я использую Quarkus

1 Ответ

3 голосов
/ 05 мая 2019

Простой способ достичь той же цели несколько другим способом - это прочитать переменную среды при создании бина CDI, а не при инъекции согласно моему вопросу

@ConfigProperty(name = "bean.colour")
private String colour;



@Produces
public ColourBean create() {
        LOGGER.info("Producing a ColourBean for: {}",colour);



    switch(Colour.valueOf(colour)){

        case RED:
        case red:{
            return new RedBean();
       }
         ...

    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...