[スプリングコア原理]-4
5812 ワード
これは金英漢のスプリングコア原理授業の学習内容だ。 純DIコンテナ(AppConfig)要求のたびに新しいオブジェクトが作成されます->メモリの浪費が深刻です. クラスインスタンス のみを作成 getInstance():常に同じインスタンス を返します. isEqualto:比較値 isSameAs:オブジェクト比較 実装コードがたくさんあります. DIP,OCP違反:具体的.getInstance() のテストは難しいです. は柔軟性に欠けています. 防モード モノトーンモード管理オブジェクト モノトーンパターン補完欠点 は、複数のリクエストを受信すると作成したオブジェクトを共有し、 を効率的に再利用する.
の状態を維持するように設計することはできません. 無状態に設計する必要があります. スプリングシートのフィールドに共有値を設定できません. @Configuration がモノトーンであることを確認
モノトーンモード
public class SingletonService {
private static final SingletonService instance = new SingletonService();
public static SingletonService getInstance(){
return instance;
}
private SingletonService(){
}
}
void singletonServiceTest(){
SingletonService singletonService1 = SingletonService.getInstance();
SingletonService
//...
System.out.println("singletonService1 = " + singletonService1);
//...
Assertions.assertThat(singletonService1).isSameAs(singletonService2);
}
短所
たんトンコンテナ
void springContainer(){
ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
MemberService memberService1 = ac.getBean("memberService", MemberService.class);
//...
Assertions.assertThat(memberService1).isSameAs(memberService2);
}
モノトーンの注意点
Reference
この問題について([スプリングコア原理]-4), 我々は、より多くの情報をここで見つけました https://velog.io/@earlybird7/스프링-핵심-원리김영한-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol