Servlet中用到了Spring托管的Bean,如何注入呢??

发布于 2021-11-04 07:44:24 字数 424 浏览 829 评论 5

用Jetty8做WEB服务器,既可以处理普通的HTTP请求,还可以处理WebSocket请求,同时用到了Spring的IOC,这样普通的HTTP请求可以交给SpringMVC的Controller处理,但是问题来了,处理WebSocket请求的这些WebSocketServlet里边需要用到一些Service,这些Service又是由Spring托管的,由于WebSocketServlet是不能交给Spring管理的,我该如何注入这些属性呢?????

请各位指点~~

可不可以做个Singleton,里边有个static的属性:ApplicationContext,用ClasspathXMLApplicationContext初始化??但是这样的话加上在web服务器启动的时候就启动的ApplicationContext,那内存中就有了两个实例,感觉不太好啊。。。。

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

平定天下 2021-11-08 18:08:25

SpringContextUtil.getBean("xxx") 这个方式 不错

反目相谮 2021-11-08 15:16:38

其实主要问题是在哪里设置SpringContextUtil.setApplicationContext(applicationContext)

猫九 2021-11-08 12:22:46

可以使用SpringContextUtil.getBean("xxx"),先要设置SpringContextUtil.setApplicationContext(applicationContext)

少女净妖师 2021-11-08 07:33:21

太棒了,谢谢

掩饰不了的爱 2021-11-04 08:47:04

web.xml里面的

 <listener>
        <listener-class>
            xxx.SpringLoaderListener
        </listener-class>
 </listener>

SpringLoaderListener 

public class SpringLoaderListener extends SpringContextLoaderListener {
	public void contextInitialized(ServletContextEvent event) {
		super.contextInitialized(event);
		SpringContextUtil.setApplicationContext(WebApplicationContextUtils.getWebApplicationContext(event.getServletContext()));
	}
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文