在 JMS 监听器中访问 Spring Context 的推荐方法
我正在使用 Spring 的 JBoss 中运行的 Web 应用程序中工作,每当请求进入应用程序时,我们的 Web 层就可以通过以下方式访问 Spring ApplicationContext
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext() );
我们在应用程序中添加了一些也需要访问 ApplicationContext 的 JMS 侦听器,但是 不幸的是,JMS 侦听器无法访问 HttpServletRequest api。
Spring 中访问 MessageListener 内的 ApplicationContext 的最佳实践是什么?我们的 JMS 监听器也通过我们的 spring 配置文件注入。
I am working in a Web Application running in JBoss that utilizes Spring and whenever requests come into the application our web layer gets access to the Spring ApplicationContext via
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getSession().getServletContext() );
We are adding some JMS Listeners in our application that also need access to ApplicationContext, but
unfortunately the JMS Listeners don't have access to the HttpServletRequest api.
What is the best practice in Spring to get access to the ApplicationContext inside a MessageListener. Our JMS Listeners are also injected via our spring configuration files.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您的 JMS 监听器本身就是 Spring bean,正如您所建议的,那么为什么不直接将监听器所需的资源连接到其中呢?侦听器就像任何其他 bean - 不要从上下文中获取 bean,而是将它们注入。
If your JMS listeners are themselves Spring beans, as you suggest, then why not just wire the resources needed by the listener directly into it? The listener is just like any other bean - don't fetch the beans from the context, have them injected.