Spring 引导:class 未找到 @Service bean bean

Spring Boot: class with @Service bean bean not found

我有多个 @Service class 实现了 class BaseService

Controllerclass中, 我想根据参数

调用 Service class(实现 BaseService

我在 Utils 中使用一个函数并从 Controller class

中调用它
public final class Util {
   
   public static BaseService getService(String num){
     AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
     context.refresh();
     if(num == 1){
        return context.getBean(TestService.class);
    }
      return context.getBean(AnotherService.class);
   }
}

我的 TestService class 有一个 @Service 注释

TestService 如果我在 Controller class

中使用构造函数调用它,它就会工作
@Autowired
public TestController(TestService service){
   this.service = service;
}


service.callMethod(); //This works!!

但是如果我使用 Util class 调用实例,它会给我 No such bean as TestService available

您的 AnnotationConfigApplicationContext 最初是空的。引用文档:“创建一个需要通过 register(java.lang.Class<?>...) 调用填充然后手动刷新的新 AnnotationConfigApplicationContext。”