[スプリングコア原理]単トンコンテナ


 @Test
    @DisplayName("스프링 없는 순수한 DI 컨테이너")
    void pureContainer(){
        AppConfig appConfig = new AppConfig();
        //1.조회 : 호출할 때 마다 객체 생성
        MemberService memberService1 = appConfig.memberService();

        //2.조회 : 호출할 때 마다 객체를 생성
        MemberService memberService2 = appConfig.memberService();

        //참조값이 다른 것 확인
        System.out.println("memberService1 = " + memberService1);
        System.out.println("memberService2 = " + memberService2);
        Assertions.assertThat(memberService1).isNotSameAs(memberService2);
    }
  • AppConfig要求ごとに新しいオブジェクト
  • が作成されます.
  • メモリの浪費が深刻です.
  • 🤔 解決策。


    オブジェクトを1つだけ作成して共有するように設計されたモノトーンパターン

    📌モノトーンモード

  • 設計モードは、クラスインスタンス
  • が1つだけ作成されることを保証する.
    2つの
  • オブジェクトインスタンスの例外を作成しないでください.
  • モノトーンモードの問題

  • 柔軟性に欠ける
  • モノトーンモードを実現するコード自体は多くの必要がある.
    などなど.
    これらの問題を解決するスプリング容器