Java线程信息传递_java – Restlet – 安全地(线程方式)将信息从Filter传递给Resource...
发布日期:2021-06-24 13:22:21 浏览次数:2 分类:技术文章

本文共 903 字,大约阅读时间需要 3 分钟。

我想将(附加)信息从过滤器传递给资源.

我目前尝试这样做的方式是,在Filter中:

getContext().getAttributes().put("additionalInformation", "info..");

并在资源中检索它:

getContext().getAttributes().get("additionalInformation");

问题:

>这是将数据从过滤器传递到资源的最佳方法吗?

>这样线程是否安全 – 如果两个客户端将接近相同的资源,它们是否都使用相同的上下文?

>如何使用request.getAttributes().put(…)而不是getContext().getAttributes().put(…)?优缺点都有什么?

上下文文档:

Concurrency note: attributes and parameters of a context are stored in

concurrent collections that guarantee thread safe access and modification.

If several threads concurrently access objects and modify these collections,

they should synchronize on the lock of the Context instance.

这是否意味着上下文不是线程安全的?

解决方法:

是的,请求对象是Restlet提供的解决方案,用于使用其属性在请求处理中涉及的所有元素之间交换数据.这可以看作是请求的上下文(并且是为此做出的),并且这种方法确实是线程安全的.

上下文是应用程序中所有元素共享的内容.请求处理(过滤器,服务器资源,…)中涉及的所有元素中的上下文通常是应用程序之一.它不是线程安全的,不应该用于在请求中的元素之间共享数据.

希望它能帮到你,

蒂埃里

标签:java,restlet

来源: https://codeday.me/bug/20190628/1317082.html

转载地址:https://blog.csdn.net/weixin_33102135/article/details/114775531 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:白噪声 java_白噪声 高斯白噪声
下一篇:java response 实时返回数据_java返回数据的ResponseEntity

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月29日 08时09分43秒