首页 > 解决方案 > spring boot项目定义依赖类为spring bean

问题描述

我在包服务中声明了一项服务,例如:

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 中声明的我的 spring boot 项目中的一个依赖项

在我的 application.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 的 bean 时出错 没有“abcdsoapapim.SoapApimMiddlewareService”类型的合格 bean

我无法注释该类,因为它是我无权访问的依赖项。我只是将它声明为对我项目的 pom.xml 的依赖。

如何将这个 bean 放入我的 Spring Boot 应用程序的上下文中?

标签: javaspringspring-boot

解决方案


@Bean您可以使用配置类中的注释将其声明为spring bean

@Bean
public SoapApimMiddlewareService soapApimMiddlewareService() {
    return new SoapApimMiddlewareService():
  }

推荐阅读