Подтвердить что ты не робот

Что эквивалентно Spring для CDI @Produces аннотации?

Когда я работал с CDI, я мог бы использовать аннотацию @Produces, чтобы создать метод производителя, который будет вызываться, чтобы выбрать, какой bean реализовал интерфейс будет вставляться аннотацией @Inject.

Теперь я работаю с Spring, но я не нашел ничего подобного. Что мне нужно использовать для достижения того же результата, который у меня был с аннотацией @Produces в CDI, когда я использую аннотацию @Autowired?

4b9b3361

Ответ 1

Вы ищете @Bean:

@Bean представляет собой аннотацию на уровне метода и прямой аналог элемента XML. Аннотации поддерживают большинство атрибутов, таких как: init-method, destroy-method, autowiring, lazy-init, проверка зависимости, зависимости и область действия.

Пример (взято из ссылки выше):

@Configuration
public class AppConfig {
    //similar to @Produces CDI annotation
    @Bean
    public TransferService transferService() {
        return new TransferServiceImpl();
    }
}

Предлагаю вам прочитать следующее: Spring Сравнительное исследование DI и CDI