spring中的单例和原型
时间: 2024-04-25 12:24:32 浏览: 40
在Spring中,单例和原型是两种不同的bean作用域。单例是指在整个应用程序中只创建一个实例,而原型是每次请求时都创建一个新的实例。
在Spring源码中,当创建一个单例bean时,会将其存入singletonObjects,并返回对该实例的引用。而对于原型bean,每次请求时都会创建一个新的实例,并返回对该实例的引用。这是通过在bean的定义中显式指定scope属性为"prototype"来实现的。例如:<bean id="accountService" class="com.foo.DefaultAccountService" scope="prototype"/>\[1\]\[2\]
在源码中,如果创建的是一个普通的bean,则直接返回该实例。如果创建的是一个BeanFactory的实例,则利用工厂实例创建新的bean,并返回对该实例的引用\[3\]。
总结起来,单例bean在整个应用程序中只创建一个实例,而原型bean在每次请求时都创建一个新的实例。这是通过在bean的定义中显式指定scope属性来实现的。
#### 引用[.reference_title]
- *1* *2* *3* [Spring的单例bean与原型bean](https://blog.csdn.net/zmflying8177/article/details/99999410)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)