gpt4 book ai didi

java - Spring boot Controller 中的 `new` 是不好的做法吗?

转载 作者:行者123 更新时间:2023-12-01 19:57:11 24 4
gpt4 key购买 nike

在一次培训中,我多次听说 Controller 中的 new 或 Spring boot 应用程序中的服务是不好的做法,因为它可能会导致内存泄漏。有人告诉我们使用 Lombok

Lombok 是很棒的工具,但我想知道 new 的内存泄漏问题。此外,如果我使用 delombok,我会看到相同的 new 关键字。

据我所知,垃圾收集器将删除所有不再引用的对象。这也包括 Spring boot Controller 。我不谈论静态变量,不谈论封闭流等。只是 Controller 方法中的局部变量。

如果我错了或者我理解不正确,请告诉我。

最佳答案

On a training I heard several times that new in controller or in service in Spring boot application is bad practice because it can cause a memory leak. And one told us to use Lombok

使用 new 运算符在 spring bean 中创建对象和使用 Lombok 实际上是两件不同的事情,而主要目标是不同的:为第一个创建对象与在编译的类中生成代码减少样板代码。

I don't speak about static variables, not closed streams, etc. Just a local variable in controller method.

关于您对 new 运算符的理解,您应该忘记并理解,每次您必须创建一个不是由容器管理的 bean 的对象时,您必须使用 运算符。
例如,您希望如何在数据库中保留一个实体而不创建它?
除了局部变量之外,还存在方法调用的范围。因此,如果您在方法中创建了数百万个大对象,则不太可能出现内存泄漏。但你到底为什么要这么做?

关于java - Spring boot Controller 中的 `new` 是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49231249/

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