2012-09-21 20 views
0

我正在设计一个应用程序,它使用UDP接收数据报数据包,​​处理它们并允许管理员查看分析的数据。Spring MVC 3 - 设计UDP Server + HTTP应用程序

对于这一刻,我创建了一个接收UDP数据包的单线程。线程存储在ServletContext中,从ServletContextListener的contextInitialized()开始。我的下一步应该解析它,但只要我想使用Spring的服务(@Service),我不知道如何在接收者的线程中注入对指定服务的引用。

我知道我可以在服务中获取ServletContext的引用,并在接收者的线程中为创建的服务设置引用,但这是否正确吗? (有没有更好的方法?)

谢谢你的建议。

回答

1

我会设计一个类似服务的类,它启动并管理侦听UDP数据包的线程。

此服务将从您的Spring上下文开始,您可以使用该上下文加载ContextLoaderListener

这样,您就可以以与Web应用程序无关的方式开发UDP层 - 并且可以在非Web环境中重新使用它。

在监听器中自己启动线程,并将其粘贴到ServletContext中听起来像是一种担忧。

+0

我完全错过了Spring有它自己的负载监听器。也许这是因为我进入了Spring一周,所以谢谢你的快速启发。 –