春はスレッドセーフBeanを保証するものではありません。
デフォルトスプリング豆容器は、単一の実施形態です。本www.fx61.com/brokerlist/zfx.html、競合状態のためのZFX剤ときに単一の実施形態、すなわち、セキュリティ・スレッドが存在します。次の例では、
クラスのカウント
パッケージconstxiong.interview.threadsafeを;
/ **
- カウントクラス
- @author ConstXiong
- @date 2019年7月16日夜二時35分40秒
* /
publicクラスカウンター{
プライベートint型のカウント= 0;
ます。public void addAndPrint(){
{試す
のThread.sleepを(10)。
}キャッチ(InterruptedExceptionある電子){
e.printStackTrace();
}
のSystem.out.println(++カウント)。
}
}
ばね配置文件
<?xmlのバージョン= "1.0"エンコード= "UTF-8"?>
<ビーンID = "カウンタ"クラス= "constxiong.interview.threadsafe.Counter" />
</豆>
测试の类の
パッケージconstxiong .interview.threadsafe;
輸入org.springframework.context.ApplicationContext;
輸入org.springframework.context.support.ClassPathXmlApplicationContext;
パブリッククラスCounterTest {
静的な無効メインパブリック(文字列[]引数){
最終ClassPathXmlApplicationContext ApplicationContextのコンテキスト=新しい新規( "spring_safe.xml");
(INT I = 0;私は<10; Iは++){
新しい新しいスレッド(){ BR />上書き@
公共RUNボイド(){
カウンタ=カウンタ(カウンタ)context.getBean( "カウンタ")
のために(INT J = 0; J <1000; J ++){
counter.addAndPrint();
}
}
} .start();
}
}
}
印刷開始と終了結果
9818
9819
9820
9821
9822
9823
9824
9825を
10000の所望の最大値は、印刷されるべき
スプリング構成ファイルを変更し、プロトタイプのビーンの範囲
<?XMLバージョン=「1.0」エンコード=「UTF-8 「?>
<ビーンID =「カウンタ」クラス=「constxiong.interview.threadsafe.Counter」スコープ=「プロトタイプ」
</豆>
試験結果出力10
春JavaBeanは軽量開放容器フレームです。代わりのJavaBean EJBを使用して、アプリケーション開発の複雑さを軽減する、エンタープライズアプリケーションの富を提供します。
軽量:***非小抵抗、より少ないリソース消費量、簡単な展開、機能選択ジャーの異なる組み合わせによって異なり何
コンテナを:JavaBeanのは、反転を制御することにより、工場出荷時のモード管理を実現(IOC)アプリケーション構成およびアプリケーションコードから分離依存
疎結合:xml構成Beanまたはアノテーションにより依存性注入を完了するために
AOP:xml構成または例えば指向プログラミング完全カット機能、注釈を付ける能力を添加することによって:ログ、トランザクション。統一された治療..
統合のしやすさ:設定すると単純なオブジェクトによっては、MyBatisのは、Hibernate、史郎...などの統合他のフレームワークの中に注入することができる
JDBC抽象化レイヤ、トランザクション管理、MVC、Javaのメール、タスクスケジューリング、JMX:機能豊富な、JMS、JNDI、EJB、動的言語、リモートアクセス、Webサービス...