代码之家  ›  专栏  ›  技术社区  ›  Vitalii

`新的“in-Spring boot controller”是错误的做法吗?

  •  0
  • Vitalii  · 技术社区  · 6 年前

    在一次训练中我多次听到 new 在控制器中或在Spring boot应用程序的服务中是不好的做法,因为它可能导致内存泄漏。其中一个告诉我们使用龙目

    Lombok是一个很棒的工具,但我想知道 。此外,如果我使用delombok,我会看到相同的结果 关键字。

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

    请告诉我,如果我错了,如果我没有正确理解一些东西。

    1 回复  |  直到 6 年前
        1
  •  3
  •   davidxxx    6 年前

    在一次培训中,我多次听到控制器或 Spring boot应用程序中的服务是错误的做法,因为它可以 导致内存泄漏。其中一个告诉我们使用龙目

    在Springbean中使用 new 操作符和使用Lombok实际上是两件不同的事情,但主要目标不同:为第一个对象创建一个对象,而不是在已编译的类中生成代码,以减少锅炉板代码。

    我不谈论静态变量,也不谈论封闭流等 控制器方法中的局部变量。

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