springIOC容器管理的bean預設都是單例的

2021-10-13 12:52:34 字數 1144 閱讀 7844

springioc容器管理的bean預設都是單例的

我們平時使用的 @controller註解標註的控制器、@service標註的介面等  預設都是單例的

那麼也就是說,我們定義乙個成員變數,執行緒之間可以共用!

滑稽!!!幹了幾年了我竟然不知道。先模擬個鎖玩一下

/**

* 測試spring 管理的bean 的作用域 鎖模擬

*/@restcontroller

public class springactionscopelockcontroller

system.out.println("open1搶到鎖了");

lock = true;

try catch (interruptedexception e)

lock =false;

system.out.println("open1釋放鎖了");

return "ok";

}public string open2()

system.out.println("open2搶到鎖了");

lock = true;

try catch (interruptedexception e)

lock =false;

system.out.println("open2釋放鎖了");

return "ok";

}}

同時訪問 open1和open2

控制台列印如下

open2搶到鎖了

open2釋放鎖了

open1搶到鎖了

open1釋放鎖了

乙個模擬的本地同步鎖就誕生了,雖然還是不很嚴謹,可能會出現併發安全問題。

下面介紹下 spring bean作用域有以下5個:

prototype:原型模式,每次通過getbean獲取該bean就會新產生乙個例項,建立後spring將不再對其管理;

====下面是在web專案下才用到的===

session:每次會話,同上

使用方法 增加註解 @scope("prototype")來指定不同的作用模式

Spring IOC容器Bean管理 三

ioc 操作 bean 管理 基於註解方式 1 什麼是註解 1 註解是 特殊標記,格式 註解名稱 屬性名稱 屬性值,屬性名稱 屬性值 2 使用註解,註解作用在類上面,方法上面,屬性上面 3 使用註解目的 簡化 xml 配置 2 spring 針對 bean 管理中建立物件提供註解 下面四個註解功能是...

spring IOC容器管理 基於註解方式

1 什麼是註解 1 註解是 特殊標記,格式 註解名稱 屬性名稱 屬性值,屬性名稱 屬性值 2 使用註解,註解作用在類上面,方法上面,屬性上面 3 使用註解目的 簡化 xml 配置 2 spring 針對 bean 管理中建立物件提供註解 下面四個註解功能是一樣的,都可以用來建立 bean 例項 1 ...

spring IOC容器的擴充套件

在此之前已經完成了ioc對 xml的解析和例項化工作,接下來需要分析 spring 的高階版本對 ioc容器的功能擴充套件 分析如下 synchronized this.startupshutdownmonitor 接下來,即開始對上面的步奏進行一一的講解 preparerefresh 準備重新整理...