Sobes.tech
Назад к вопросам
Junior — Middle
66

Какой эффект окажет использование аннотации @Bean на метод внутри класса для экземпляра этого класса?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Аннотация @Bean в Spring Framework используется для определения метода, который создает и возвращает объект, управляемый Spring контейнером как bean.

Если метод с @Bean находится внутри класса, который сам является компонентом Spring (например, помечен @Configuration), то при создании экземпляра этого класса Spring вызовет этот метод и зарегистрирует возвращаемый объект как bean в контексте.

Эффекты использования @Bean на методе:

  • Метод вызывается один раз (если scope не изменён), и результат кэшируется как singleton bean.
  • Позволяет явно конфигурировать и создавать бины, которые не могут быть автоматически обнаружены через сканирование.
  • Позволяет управлять зависимостями и конфигурацией через Java-код.

Пример:

@Configuration
public class AppConfig {

    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }
}

В этом примере myService будет зарегистрирован как bean, и его можно будет внедрять в другие компоненты.