gpt4 book ai didi

java - 如何在 Spring 中为每个请求提供一个全局变量?

转载 作者:行者123 更新时间:2023-11-30 06:24:39 25 4
gpt4 key购买 nike

我正在使用 Spring 框架翻译基于 REST 的应用程序。现在我需要根据请求的语言翻译一些回复。例如:

/get-me-an-answer/?lang=es Spanish
/get-me-an-answer/?lang=en English
/get-me-an-answer/?lang=fr French

我将变量 language_code 作为名为 Translang 的类中的静态变量

    class Translang {
...
public static String language_code = null;
...
}

问题在于多线程,当新请求到来时会更改语言,并且如果正在执行另一个先前的请求,则可能会以修改后的语言而不是其请求的原始语言进行回答。

这就是我的问题的原因:如何在每个请求的 Spring 中使用全局变量来避免此问题?

最佳答案

似乎ThreadLocal是您正在寻找的内容,因为每个请求是由单独的线程执行的。

This class provides thread-local variables. These variables differ from their normal counterparts in that each thread that accesses one (via its get or set method) has its own, independently initialized copy of the variable. ThreadLocal instances are typically private static fields in classes that wish to associate state with a thread (e.g., a user ID or Transaction ID).

关于java - 如何在 Spring 中为每个请求提供一个全局变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47457903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com