Sobes.tech
Junior — Middle

Quel effet aura l'utilisation de l'annotation @Bean sur une méthode à l'intérieur d'une classe pour l'instance de cette classe?

sobes.tech IA

Réponse de l'IA

Аннотация @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, и его можно будет внедрять в другие компоненты.