весенний загрузочный проект определяет класс зависимости как весенний боб - PullRequest
1 голос
/ 13 октября 2019

Я объявил службу в пакете как:

import a.b.c.d.soapapim.SoapApimMiddlewareService;

@Service
@EnableDefaultExceptionHandling
public class MyService{
    private final SoapApimMiddlewareService myService;

    public MyService(SoapApimMiddlewareService myService){
        this.myService = myService;   
    }

    public Response pullEvents(numEvents){
        myService.pullEvents(numEvents);
    }

}

SoapApimMiddlewareService - это зависимость в моем весеннем загрузочном проекте, объявленная в pom.xml моего проекта в пакете abcdsoapapim

в моем приложении.java:

@ComponentScan({"a.b.c.d.soapapim", "service", "scheduler"})
SpringBootApplication
@EnableScheduling
public class Application implements WebMvcConfigurer {´

    public static void main(String[] args){
        SpringApplication app = new SpringApplication(Application.class);
        app.setRegisterShutdownHook(false);
        app.run(args);
    }

}

У меня также есть планировщик:

@Component
public class Scheduler {

    private MyService myService;

    @Scheduled(fixedRate = 1200)
    public void myScheduledTask(){
        myService.pullEvents(1);
    }
}

Я получаю следующую ошибку:

UnsatisfiedDependencyException: Ошибка при создании компонента с именемMyService Нет подходящего компонента типа 'abcdsoapapim.SoapApimMiddlewareService'

Я не могу комментировать этот класс, потому что я не имею доступа к его зависимости. Я просто объявляю это как зависимость от pom.xml моего проекта.

Как я могу получить этот bean-компонент в контексте моего приложения весенней загрузки?

1 Ответ

1 голос
/ 13 октября 2019

Вы можете объявить его как Spring Bean, используя аннотацию @Bean в классе конфигурации

@Bean
public SoapApimMiddlewareService soapApimMiddlewareService() {
    return new SoapApimMiddlewareService():
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...