4 回答

TA貢獻(xiàn)1883條經(jīng)驗(yàn) 獲得超3個(gè)贊
通過使用new
關(guān)鍵字,您正在創(chuàng)建一個(gè) java 對(duì)象,但它不是 spring bean,并且不會(huì)出現(xiàn)在 spring 容器中。但是,如果您@scope("prototype")
為每個(gè)請(qǐng)求使用一個(gè)新的 spring bean,則會(huì)提供一個(gè)新的 spring bean。
什么是春豆?
Spring bean 基本上是由 Spring 管理的對(duì)象。更具體地說,它是一個(gè)由 Spring 框架容器實(shí)例化、配置和管理的對(duì)象。Spring bean 在 Spring 配置文件中定義(或者最近通過使用注釋),由 Spring 容器實(shí)例化,然后注入到您的應(yīng)用程序中。
春豆的優(yōu)點(diǎn)?
1)默認(rèn)情況下,所有spring bean都是不可變的,spring IOC容器將管理它們
2)通過使用依賴注入,您可以輕松地將bean注入到任何其他對(duì)象中
3)依賴注入使測(cè)試更容易。注入可以通過構(gòu)造函數(shù)完成。
4)如果您使用的是Spring Boot?,那么您可以使用注釋將值從 Spring bean 注入application.yml
或注入到 Spring bean 中application.properties
@Value

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
其簡(jiǎn)單明了。在某些情況下,您可能需要每個(gè) bean 都有單獨(dú)的實(shí)例。它幾乎等于new
在需要時(shí)使用 with 創(chuàng)建,但您可以將依賴項(xiàng)注入到標(biāo)記為原型的任何內(nèi)容中。

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
例如,您有一個(gè)令牌,您應(yīng)該一次性使用,因此每次新實(shí)例創(chuàng)建到應(yīng)用程序上下文時(shí),您都可以使用此類型。

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊
使用 Spring 的主要好處之一是它不需要直接通過 實(shí)例化對(duì)象new
,而是將對(duì)象創(chuàng)建為 Spring 組件/bean 并在 Spring 應(yīng)用程序上下文中注冊(cè) - 這導(dǎo)致可以組合在一起的軟件組件通過注入相互結(jié)合,并導(dǎo)致更容易的單元測(cè)試和更靈活的軟件。
spring 原型范圍意味著每次需要時(shí)都會(huì)創(chuàng)建一個(gè) spring 組件的新實(shí)例(由 spring 運(yùn)行時(shí)/容器)并在 spring 應(yīng)用程序上下文中注冊(cè)。最終 Spring 創(chuàng)建一個(gè)對(duì)象,它像任何其他對(duì)象一樣存儲(chǔ)在堆上,但是 Spring 容器提供的抽象層能夠定義軟件組件并將其“連接”在一起,比使用裸露創(chuàng)建對(duì)象具有深遠(yuǎn)的new
優(yōu)勢(shì)其他物體內(nèi)部。
添加回答
舉報(bào)