0

我正在设计一个使用 UDP 接收数据报包、处理它们并允许管理员查看解析数据的应用程序。

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

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

谢谢指教。

4

1 回答 1

1

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

然后,该服务将从您的 Spring 上下文启动,您可以使用ContextLoaderListener.

通过这种方式,您可以以与 Web 应用程序无关的方式开发 UDP 层 - 并可以在非 Web 环境中重用它。

在侦听器中自己启动线程并将其粘贴在 ServletContext 中听起来像是一个混合问题。

于 2012-09-21T21:21:05.890 回答