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 準備重新整理...