Spring 引导:class 未找到 @Service bean bean
Spring Boot: class with @Service bean bean not found
我有多个 @Service
class 实现了 class BaseService
在Controller
class中,
我想根据参数
调用 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。”
我有多个 @Service
class 实现了 class BaseService
在Controller
class中,
我想根据参数
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。”