ばね容器
コンテナ。
コンテナは、オブジェクトの作成と消滅を制御し、これらのオブジェクトによって作成されたインスタンスに追加の機能を提供します.
オブジェクト、クラス、インスタンス
スプリングコンテナ。
スプリングによって生成されるbeanの生成、消失、使用、およびライフサイクルを管理します.
beanを作成すると、スプリングコンテナに格納され、開発者がbeanを注入したい場合は、スプリングコンテナに注入されます.
ここで,開発者はbeanのみをスプリング容器に登録し,必要に応じて直接beanを入れ,スプリング容器を介して注入を受ける主体が変化する現象をIoC(制御権の逆転)と呼ぶ.
IoC(制御権の逆転)
オブジェクトの作成から消滅に至るまで,ライフサイクルは開発者によるものではなく,Springコンテナによる開発者の要請による甲乙関係が変化した.
Iocのメリット
Iocフィーチャーを持つスプリングコンテナタイプ
BeanFactory
beanを登録、作成、表示するなど、beanの役割を管理します.
Lazy loadding->getBean()の呼び出し時にBeanのインスタンス化を開始
ApplicationContext
スプリング容器付きのデザインモード(少し辛味)
SingleTon Pattern
スプリングはSingleTonPatternパターンを使用しています.JavaではSingleTonPatternも使用できますが、エラーや欠点が多すぎます.しかし、スプリングはこれらの欠点と誤りを改善している.(Spring開発者への無限の賛辞と感謝...)
what's that?
SingleTonPatternは、インスタンスを1つの範囲に制限し、世界中でどこでもアクセスできるようにする設計モデルです.Springでは、springコンテナはすべてのbeanを単一色調で管理します.
スプリングコンテナでbeanをインスタンス化すると、Benaが呼び出されるたびにインスタンス化beanが返されます.すなわち,beanを一度だけインスタンス化し,それを共有する.
これにより、呼び出しのたびに新しいインスタンスが生成されないため、共有インスタンスはメモリの無駄を回避できます.共通対象の再生防止
public class example(){
private final testRepository test1;
private final testRepository test2;
// testRepository는 스프링 컨테이너에서 바로 인스턴스화 시켜놓고 대기함
// example class와 같이 호출이 되면 미리 인스턴스화 시킨 testRepository를 반환해줌
//test1과 test2는 같은 testRepository의 인스턴스를 공유함
System.out.println(test1);
System.out.println(test2);
// test1과 test2의 출력 값이 같다.
}
SingleTon Patternの問題
https://shxrecord.tistory.com/132
https://sabarada.tistory.com/25
https://joont.tistory.com/144
Reference
この問題について(ばね容器), 我々は、より多くの情報をここで見つけました https://velog.io/@hyundong_kk/스프링-컨테이너テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol