スプリング容器(スプリング基本編by金英漢)


ばね容器


これまで純javaコード注入依存性のみを用いていたが,スプリングを適用してみよう.

AppConfig


設定ファイルを表す@Configuration宣言を貼り付け、各メソッドに@Beanを貼り付け、スプリング空席として登録します.
@Configuration
  public class AppConfig {
  
      @Bean
      public MemberService memberService() {
          return new MemberServiceImpl(memberRepository());
      }
      
      @Bean
      public OrderService orderService() {
          return new OrderServiceImpl(
                  memberRepository(),
                  discountPolicy());
	}
    
    ....
    
}

MemberApp


以前にAppConfigからMBerServiceを受信した場合、スプリングコンテナとしてインポートされます.
public class MemberApp {
      public static void main(String[] args) {
  //        AppConfig appConfig = new AppConfig();
  //        MemberService memberService = appConfig.memberService();
          ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
          MemberService memberService = applicationContext.getBean("memberService", MemberService.class);
          }
   }

OrderApp


同じ原理でorderappを修正します.
public class OrderApp {

public static void main(String[] args) {
//      AppConfig appConfig = new AppConfig();
//      MemberService memberService = appConfig.memberService();
//      OrderService orderService = appConfig.orderService();

        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
        MemberService memberService = applicationContext.getBean("memberService", MemberService.class);
        OrderService orderService = applicationContext.getBean("orderService", OrderService.class);
        }
  }
スプリングコンテナ作成プロセス
スプリングコンテナはApplicationContextです.XMLベースと宣言ベースのJavaクラスは、2つの方法で作成できます.AppConfigは宣言に基づく作成方法であるため、次のコードを使用してコンテナを作成できます.
//스프링 컨테이너 생성
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
次に、AppConfigの@Beanを表示し、Spring空のリポジトリに登録します.次に依存関係を参照し、スプリングシート間に依存関係を注入する.

しかし、現在のようにjavaコードのみを使用して依存注入を作成すると、スプリング空孔と依存注入が同時に作成されます.