我有几个无状态 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 来传递一些信息。
关于java - ejb获取当前正在执行的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14675083/