java - Spring Rest API Controller 中的静态变量是否会导致内存泄漏?
问题描述
好的,所以我们的团队正在使用 Spring Framework 开发 api,经过几个附加功能后,我们面临内存泄漏,并决定重新检查整个代码以查找泄漏原因。
现在我很好奇我们在这里做的一种特殊做法
@RestController
@RequestMapping("/v1")
public class TransactionController {
final static Logger logger = LogManager.getLogger(TransactionController.class);
static Gson gson = new Gson();
@RequestMapping(value = "/create-transaction", method = RequestMethod.POST, produces = "application/json")
public @ResponseBody
String createTransaction(@RequestBody String json, HttpServletRequest request, HttpServletResponse response) {
long startTime = System.currentTimeMillis();
try{
...
} catch (Exception ex) {
logger.error(LogAdapter.logToLog4jException(startTime, request, "", json, gson.toJson("output here"), ex.toString()), ex);
}
}
}
那么这两个静态变量会在这个类中的每个 api 调用中重新创建吗?或者最好在本地声明和使用它们?
编辑:我们的每个控制器类中都存在静态记录器和 gson 变量
之前谢谢
解决方案
推荐阅读
- ruby-on-rails - ruby 中 JSON.parse 的轻松访问助手?
- python - 将表格从 Word 提取到 Excel - 如何保持表格分开?
- postman - 邮递员请求工作流 - 请求重用和请求之间的暂停
- angular - 如果请求同时发出,则两个不同的请求返回相同的结果
- apache-kafka - 没有 Zookeeper 的 Kafka 是否仍需要在 n*2+1 个节点集群中运行至少 n 个节点?
- python - 如何在 discord.py 中打开事件循环?
- r - ggplot 使用 nls 和 facet wrap
- json - SwiftUI 解析和显示值形成一个 JSON 调用
- opennms - 为什么 OpenNMS 不能通过从 REST API 添加的节点发现 SNMP 接口?
- javascript - 比较两个 Array Buffer Images 并在后面的 Javascript 中将差异着色为红色