java - 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 应用程序的上下文中?
解决方案
@Bean
您可以使用配置类中的注释将其声明为spring bean
@Bean
public SoapApimMiddlewareService soapApimMiddlewareService() {
return new SoapApimMiddlewareService():
}
推荐阅读
- ios - iOS:Jpeg 压缩增加了图像的大小(Swift)
- discord.js - Discord.js:如何在消息中发送 .txt 文件的内容?
- erlang - 无法在 MAC OSX Mojave 上安装 asdf erlang
- node.js - html-pdf:无法加载 PhantomJS 模块。使用 aws ec2 时,您必须使用“options.phantomPath”设置 PhantomJS 二进制文件的路径
- c# - Azure 数字孪生 API 无法使用教程中所述的 DefaultAzureCredential 身份验证方法
- java - 大型 jpa 删除的最佳垃圾收集器
- google-cloud-platform - 通过 Terraform 配置没有外部 IP 的 GCP VM 实例
- angular - 角度 e2e 测试不必要地等待
- php - 在新选项卡上打开图像
- javascript - 如何通过按帐户/ID/类别分组来对值求和?