首页 > 解决方案 > 为什么我们在 Spring Boot 中需要原型作用域

问题描述

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

我试图了解它的优点。

我发现了这个问题,但它没有解释和的优点/缺点newprototype具有范围原型的 bean 和单例 bean 中的新对象有什么区别?

标签: javaspring-boot

解决方案


通过使用new关键字,您正在创建一个 java 对象,但它不是 spring bean,不会出现在 spring 容器中。但是,如果您@scope("prototype")对每个请求都使用一个新的 spring bean。了解更多信息

什么是春豆?

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

春豆的优点?

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

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

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

4)如果您使用的是spring boot ,那么您可以使用注释将值从spring bean中注入application.yml或注入到spring bean中application.properties@Value


推荐阅读