Как получить bean в @Bean?

Есть следующий @Bean:

@Bean
public Book warAndPiece() {
    return new Book(3000, "War and Piece", "Tolstoy", );
}

Последний аргумент - объект Brochure. Как подключить его если он

  • как @Bean в классе Brochure(думаю, что вызывать метод - не лучшая затея)
  • как bean в файле конфигурации

Оба имеют свои qualifier'ы


Ответы (2 шт):

Автор решения: Санаев
@Bean
public Book warAndPiece(@Qualifier("brochure") Brochure brochure) {
    return new Book(3000, "War and Piece", "Tolstoy",brochure);
}
→ Ссылка
Автор решения: kaylil_01

Если бин Brochure используется только в этом bean-методе, то можете сделать так:

 @Bean 
 public Book warAndPiece(Brochure brochure(имя бина-метода, который создает этот бин) {
   return new Book(3000, "War and Piece", "Tolstoy", brochure); 
 }

И спринг сам внедрит эту зависимость, если же не только в этом одном bean-методе, то лучше заавтоварить в классе, где находится этот bean-метод и передать в метод.

→ Ссылка