Внедрение bean-компонента Spring из зависимости, но без аннотации @Bean - PullRequest
1 голос
/ 15 марта 2020

У моего Spring Boot приложения есть новый Zoo @Service класс:

@RequiredArgsConstructor
@Service
public class Zoo{
    private final Cat cat;

Мне нужно добавить в конструктор класс Cat, полученный из устаревшей библиотеки, которую я импортирую в проект через pom:

    <dependency>
        <groupId>com.example</groupId>
        <artifactId>animals</artifactId>
    </dependency>

package com.example.animals
class Cat{..}

Я не могу изменить код устаревшего пакета animals, чтобы добавить аннотацию к классу Cat.

Когда Я пытаюсь запустить приложение и получаю эту ошибку:

Для параметра 0 конструктора в com.example.zoo требуется компонент типа com.example.animals.cat, который не может быть найден

Есть ли способ решить эту проблему?

1 Ответ

2 голосов
/ 15 марта 2020

Да, вы можете решить эту проблему, создав класс @Configuration, в котором вы определяете Spring Bean, представляющий экземпляр Cat, как в следующем примере.

@Configuration
public class AppConfiguration {

  @Bean
  public Cat cat() {
    return new Cat();
  }
}
...