4 回答
TA贡献1883条经验 获得超3个赞
通过使用new
关键字,您正在创建一个 java 对象,但它不是 spring bean,并且不会出现在 spring 容器中。但是,如果您@scope("prototype")
为每个请求使用一个新的 spring bean,则会提供一个新的 spring bean。
什么是春豆?
Spring bean 基本上是由 Spring 管理的对象。更具体地说,它是一个由 Spring 框架容器实例化、配置和管理的对象。Spring bean 在 Spring 配置文件中定义(或者最近通过使用注释),由 Spring 容器实例化,然后注入到您的应用程序中。
春豆的优点?
1)默认情况下,所有spring bean都是不可变的,spring IOC容器将管理它们
2)通过使用依赖注入,您可以轻松地将bean注入到任何其他对象中
3)依赖注入使测试更容易。注入可以通过构造函数完成。
4)如果您使用的是Spring Boot ,那么您可以使用注释将值从 Spring bean 注入application.yml
或注入到 Spring bean 中application.properties
@Value
TA贡献1854条经验 获得超8个赞
其简单明了。在某些情况下,您可能需要每个 bean 都有单独的实例。它几乎等于new
在需要时使用 with 创建,但您可以将依赖项注入到标记为原型的任何内容中。
TA贡献1784条经验 获得超9个赞
使用 Spring 的主要好处之一是它不需要直接通过 实例化对象new
,而是将对象创建为 Spring 组件/bean 并在 Spring 应用程序上下文中注册 - 这导致可以组合在一起的软件组件通过注入相互结合,并导致更容易的单元测试和更灵活的软件。
spring 原型范围意味着每次需要时都会创建一个 spring 组件的新实例(由 spring 运行时/容器)并在 spring 应用程序上下文中注册。最终 Spring 创建一个对象,它像任何其他对象一样存储在堆上,但是 Spring 容器提供的抽象层能够定义软件组件并将其“连接”在一起,比使用裸露创建对象具有深远的new
优势其他物体内部。
添加回答
举报