Ответ
Для внедрения бина из сторонней библиотеки в Spring-приложение существует несколько подходов, в зависимости от того, содержит ли библиотека аннотации Spring.
1. Если библиотека содержит Spring-аннотации (@Component, @Service и т.д.):
Просто включите сканирование её пакета в вашей конфигурации.
@Configuration
@ComponentScan({"com.your.package", "com.external.library.package"})
public class AppConfig {}
2. Если аннотаций нет (наиболее частый случай):
Объявите бин вручную в Java-конфигурации с помощью @Bean.
@Configuration
public class AppConfig {
@Bean
public ExternalService externalService() {
// Здесь можно настроить бин: передать параметры, вызвать методы
return new ExternalService();
}
}
3. Дополнительные методы:
@Import: Для импорта другой@Configuration-класс.@Configuration @Import(ExternalLibraryConfig.class) public class AppConfig {}@ImportResource: Для импорта старых XML-конфигураций.@Configuration @ImportResource("classpath:external-beans.xml") public class AppConfig {}
Почему это работает? Spring создаёт и управляет объектами, объявленными как @Bean, помещая их в контекст приложения. После этого их можно внедрять с помощью @Autowired в любом другом компоненте вашего приложения.