提问者:小点点

为什么我们在Spring Boot中需要原型范围[重复]


我正在考虑@scope("原型")范围,但我不明白,因为我们已经有了new关键字。它们都在运行时创建了一个对象的新实例。使用原型有什么好处?比使用new更容易重新分配吗?当我使用new关键字创建新对象时,我做错了什么吗?

我试图理解它的优点。

我发现了这个问题,但它并没有解释new原型的优点/缺点:带有范围原型的bean和单例bean中的new Object有什么区别?


共3个答案

匿名用户

通过使用new关键字,您正在创建一个java对象,但它不是一个Spring bean,也不会出现在Spring容器中。但是如果您对每个请求使用@scope(“原型”),则会提供一个新的Spring bean。了解更多信息

春豆是什么?

Spring bean基本上是由Spring管理的对象。更具体地说,它是由Spring Framework容器实例化、配置和以其他方式管理的对象。Spring bean在Spring配置文件中定义(或者最近通过使用注释),由Spring容器实例化,然后注入到您的应用程序中。

春豆的优点?

1)默认情况下,所有Spring bean都是不可变的,SpringIOC容器将管理它们

2)通过使用依赖注入,您可以轻松地将bean注入任何其他对象

3)依赖注入使测试更容易。可以通过构造函数进行注入。

4)如果您使用的是Spring引导,那么您可以使用@Value注释将application. ymlapplication.properties中的值注入到Springbean中

匿名用户

很简单。在某些情况下,您可能需要在每个bean中使用单独的实例。这几乎等于在需要时使用new创建,但有一个例外,即您可以将依赖项注入到您标记为原型的任何内容中。

匿名用户

例如,您有一个令牌,您应该一次性使用,因此每次新实例创建到应用程序上下文时,您都可以使用这种类型。