Встречается на собеседованиях • сегодня

Что будет если пометить метод экземпляра класса @Bean

При использовании @Bean на методе экземпляра класса Spring будет вызывать этот метод для получения бина, но сам экземпляр класса не станет Spring-бином. Это может привести к неожиданному поведению, так как:

  1. Метод @Bean должен быть в @Configuration классе
  2. Spring создаст прокси для @Configuration класса, но не для обычного класса
  3. Каждый вызов метода может создавать новый объект, если нет @Scope аннотации

Пример проблемного кода:

java
@Component
public class MyComponent {
    @Bean  // Так делать не стоит!
    public MyService myService() {
        return new MyService();
    }
}

Лучше выносить @Bean методы в отдельные @Configuration классы.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы