【问题标题】:Servlet REST API and thread data exchangeServlet REST API 和线程数据交换
【发布时间】:2014-12-08 10:56:29
【问题描述】:

在 servlet 和线程之间组织数据交换的最佳和最简单的方法是什么?所以我有(设计)一个线程来管理一些进程,我有 REST servlet 允许查询状态并更新它们。我不希望有太多的 REST 调用,可能在一秒钟内调用一次,所以我可以使用 synchronized 来避免多线程问题。

我想这将能够创建一个在其中运行线程的新 bean。但是如何通过 servlet 访问它并在它们之间有一些共享对象呢? 这个解决方案有什么问题?

【问题讨论】:

    标签: java multithreading spring rest servlets


    【解决方案1】:

    您没有提供很多细节,因此很难准确回答您的需求。首先 - 您需要确定您是否需要旧的/好的 servlet,或者您的功能可以在控制器中使用 @RequestMapping 注释的某个位置开始(如果您使用 spring mvc)。

    您可能希望使用会话范围的 bean 来保持 REST 调用之间的任何状态,可能与 ThreadLocal 属性混合使用 - 请查看 http://java.dzone.com/articles/painless-introduction-javas-threadlocal-storage 线程本地解释。

    如果仍然感到困惑 - 请分享更多详细信息,该应用究竟要维护什么。

    【讨论】:

    • 您说得对,但我正在使用线程来控制(监视)另一个进程,并且该线程应该进行 REST 调用(作为客户端)。那么有没有办法启动一个长期存在的进程并在它和 Servlet 之间创建交换。
    • 您可以将您的线程封装到单独的类中,并使用@PostConstruct 公共方法来启动您的线程并从中进行调用。 Spring bean 默认是单例的,所以 PostConstruct 应该只被调用一次。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    相关资源
    最近更新 更多