当前位置: 首页 > 知识库问答 >
问题:

System.setProperty可以按请求使用吗?[重复]

南门正祥
2023-03-14

我需要将每个请求的不同系统属性设置为REST API。可以使用System.setProperty("filePath",file.getAbsolutePath ()); 吗?它是线程安全的吗?当多个/最新的请求在当前请求被处理之前到达服务器时,它会用新值覆盖旧值吗?


共有2个答案

柴翰藻
2023-03-14

这在很大程度上取决于您的确切设置。例如,这里建议您可以在不同的 Websphere 容器中设置不同的系统属性。

因此,如果您有这样的设置,并且您可以保证一次只有一个客户端使用一个endpoint,这在理论上是可能的。

但是,如果链条告诉我们真正的答案:忘记这个想法。系统属性不应像这样使用!

如果该REST服务的不同用户需要“一个细节”与其他运行相比不同,那么这绝对意味着:这需要是客户端在调用该REST服务时传递给服务器的参数。

康泽宇
2023-03-14

您是对的,环境变量将被每个系统.set属性方法调用覆盖。

如果您不需要覆盖,有很多解决方案:

  1. 使用servlet容器上下文存储每个请求的文件路径
  2. 使用Java ThreadLocal手动存储属性。但请注意,在请求结束后,您必须进行清理
 类似资料:
  • 目前,我正在为ios ionic应用程序编写一个Appium脚本,我使用以下方法来实现滑动功能。 在上面的方法中,单词press,waitAction

  • 问题内容: 我有一个PHP脚本,需要从远程服务器下载多个文件。目前,我只有一个循环使用cURL下载和处理文件,这意味着它直到下一个文件完成后才开始下载一个文件- 这大大增加了脚本的运行时间。 是否可以启动多个cURL实例,例如,同时异步下载这些文件而无需等待上一个实例完成?如果是这样,将如何实现? 问题答案: 是。 有一个multirequest PHP库 (或参见:已归档的Google Code

  • 问题内容: 我需要一种监视用户编辑会话的方法,而我正在审查的解决方案之一将使我使用一个事件发送ajax请求,以通知服务器编辑会话的结束。 我对事件的了解(相当有限)表明,附加到此处理程序的代码必须快速运行,因此通常用于清除对象以防止内存泄漏。 我的问题是,这样做是否足够可靠? PS。我知道这个选择。 问题答案: 如果您的服务器足够快地响应,则此方法相当可靠。确实需要提防的事情。如果关闭浏览器并在u

  • 问题内容: 我可以在Google App Engine上使用请求吗?我认为该库非常适合创建REST客户端。 问题答案: 是。 __如果您启用了计费功能(启用套接字支持),则 在Google Appengine(版本1.9.18)上, 请求 版本2.3.0 可以在生产中使用 (但不适用于SDK)。 更新 :从2017年1月31日起,Requests可以在生产中使用2.9.1版本。但是,它不适用于Go

  • 我正在编写一些脚本,以在各个级别测试我们的基础设施。我正在尝试进行测试,以验证使用和不使用http2的客户端的功能。这些文档指定了如何通过覆盖传输来禁用http2。TLSNextProto,但我找不到任何方法要求使用http2。 有没有办法要求http请求只使用http/2?或者如果没有,是否有任何类型的字段或钩子来查看它是否使用了http2?

  • 寻找Reactor调度程序的指导。 我想在后台运行某些IO任务,即向技术团队发送电子邮件。为了使其异步,我使用Mono。fromRunnable订阅了调度程序。 我可以选择使用 Schedulers.elastic() 或 Schedulers.newElastic()。我更喜欢后者,因为它允许我给它一个唯一的名称,这将有助于日志分析。 做一个静态变量可以吗? 在Mono上订阅它,而不是每次都要创