日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring Bean默认配置为单实例 Spring Bean生命周期

發布時間:2023/12/9 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring Bean默认配置为单实例 Spring Bean生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

Spring 的Bean默認的是單例的.

如果不想單例需要如下配置:

<bean id="user" class="..." scope="singleton"/>

scope="singleton"就是配置這個bean是單例的,默認不寫就是singleton。

scope 換成 prototype 就不是單例的了。

?

spring Bean生命周期

1.Bean的作用域可以通過Bean標簽的scope屬性進行設置

Bean的作用域包括:

  • 默認情況下scope="singleton",那么該Bean是單例,任何人獲取該Bean實例的都為同一個實例;
  • scope="prototype",任何一個實例都是新的實例;
  • scope="request",在WEB應用程序中,每一個實例的作用域都為request范圍;
  • scope="session",在WEB應用程序中,每一個實例的作用域都為session范圍;

注意:在默認情況下(scope="singleton"),Bean實例在被Spring容器初始化的時候,就會被實例化,默認調用無參數的構造方法。在其它情況下,Bean將會在獲取實例的時候才會被實例化。

?

2.Bean可以通過指定屬性init-method指定初始化后執行的方法以及通過指定屬性destroy-method銷毀時執行的方法。

語法:<bean ....?? destroy-method="銷毀時調用的方法名" init-method="初始化后執行的方法名"/>

?

Spring中所謂的單例是指scope="singleton"的bean.

?

單例模式分為餓漢模式和懶漢模式:

餓漢模式spring singleton的缺省是餓漢模式:啟動容器時(即實例化容器時),為所有spring配置文件中定義的bean都生成一個實例
懶漢模式在第一個請求時才生成一個實例,以后的請求都調用這個實例
spring singleton設置為懶漢模式:<beans default-lazy-init="true">

?

注意:

Spring中說的單例是相對于容器的,既在ApplicationContext中是單例的。而平常說的單例是相對于JVM的。另一個JVM可以有多個Spring容器,而且Spring中的單例也只是按bean的id來區分的。

參考:Spring Bean配置默認為單實例 pring Bean生命周期

?

Springmvc 中的controller 默認也是單例的可以通過@scope 注解改為prototype

參考:SpringMVC Controller單例和多例

轉載于:https://my.oschina.net/zjllovecode/blog/1609710

總結

以上是生活随笔為你收集整理的Spring Bean默认配置为单实例 Spring Bean生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。