我有几个无状态bean和一些由该bean调用的服务类。我不能直接将bean实例传递给那个服务类。
有什么方法可以获得当前正在执行的bean实例吗?我只是想知道是否有任何现有的机制,所以我不需要编写拦截器和相关的逻辑来将bean实例保存在某个地方。
更具体地说:
public class MyBean implements MyBeanInterface, CommonBeanInterface {
public void businessMethod() {
SomeService service = ... // service is somehow obtained
service.doWork();
}
}
public class SomeServiceImpl implements SomeService {
public void doWork() {
CommonBeanInterface currentBean = getCurrentBean(); // its implementation I need
}
}
所以在服务类中,我需要获取调用该服务的bean实例。
任何信息都会有所帮助!
我认为没有API来识别调用该服务的bean。请注意,如果服务与bean在同一个容器中(即不涉及远程调用),它们将在同一线程上执行。因此,您可以使用ThreadLocal传递一些信息。