我有一个Spring类的Service类,并且我想在不是Spring bean的类(Class A)中使用此Service类。
我应该在哪里实现ApplicationContextAware?
以下是我的代码
@Service("sharedListsService")
public class SharedListsService
{
}
public class A
{
// I want to call my service class methods here
}
答案 0 :(得分:1)
我不确定这是否是最好的解决方案,但是您可以像下面这样重构您的A
类:
public class A {
private SharedListsService sharedListsService;
public void setSharedListsService(SharedListsService sharedListsService) {
this.sharedListsService = sharedListsService;
}
}
,然后在创建A类实例(例如)时注入spring bean:
SharedListsService sharedListsService = WebApplicationContextUtils.getWebApplicationContext(appContext).getBean(SharedListsService.class);
A a = new A();
a.setSharedListsService(sharedListsService);
答案 1 :(得分:1)
ApplicationContextAware 仅适用于春豆。 它将应用程序上下文注入到bean中。这就是为什么您不能直接使用它来将SharedListsService实例转换为“ A”的原因。 您需要一个bean,可能是factory的“ A”才能为您连接。