Spring bean用于两个不同的范围

时间:2017-01-26 08:10:35

标签: java spring spring-bean

我们有 Web应用程序公开 Web资源(REST) JMS MessageListener 。 Spring是用于定义和注入bean的框架。

我们在范围“ request ”中定义了bean,以存储可用于Web资源的信息。我们也希望在JMS MessageListener中使用这些bean,但“请求”范围不存在并导致异常。

此问题的一个解决方案是使用Spring的“ SimpleThreadScope ”实现的“ thread ”类型的自定义作用域。但是这个类中没有实现bean的破坏。我知道有一种方法可以通过“Spring自定义作用域示例线程”来实现它,但我更喜欢让Application Server管理线程池。

您对此问题有任何其他想法/建议吗?

重要方面:在范围中创建的bean由资源和JMS消息侦听器使用。

我们举一个例子。 想象一下,我们有以下几个类:

  • BeanInScope1
  • 班级 WebResource1
  • 班级服务1
  • MessageListener1

Service1 ”使用“ BeanInScope1 ”,“ Service1 ”可以通过“ WebResource1 <”进行调用/ strong>“或” MessageListener1 “,表示” WebResource1 “和” WebResource1 “以相同的方式创建” BeanInScope1 “的 MessageListener1 ”。

希望这个例子能够帮助......

0 个答案:

没有答案