java - 如何不使用 Tomcat 在多个请求中保留静态变量?
问题描述
根据这篇文章Tomcat: Java Static Variable Scope, Application or sessionwide? Tomcat跨请求保留静态变量,如何将其配置为不保留每个请求的静态变量?
解决方案
不,它不能。这是不实用的。
Java 语言规范 (JLS)要求在整个执行上下文(即 JVM)中只有一个类静态变量的实例。
唯一可能的“退出”是技术上可以拥有同一个类的多个副本,每个副本位于不同的类加载器中。然而,为每个请求创建一个新的类加载器并加载一个类的新副本将非常低效,而且完全不切实际。
解决方案很简单:
不要在请求处理类中使用静态。
推荐阅读
- excel - 在excel中用逗号分隔值查找范围内的值并返回YES NO
- forms - 在 append_entry 和 pop_entry 上覆盖对 WTForms 的验证
- angular - 如何自定义验证 FormArray
- java - 用 JNA 映射 c++ 函数
- .net - 使用 .NET Core 3.1 构建需要更多时间和内存(.NET Core 主机和 Visual Studio 代码)
- gradle - Gradle ShadowJar:包含递归依赖
- c++ - std::map 如何计算重复项
- node.js - 如何发送 zip 文件夹作为来自 nodejs 服务器的响应
- c++ - 启动时 MSYS2 分段错误的 GTK3
- wpf - 动态占位符 WPF 动画