Spring入門-手順4.スプリングシートに関連


  • Arn金英漢の「spring入門-コード学習のspring Boot、Web MVC、DBアクセス技術」コースまとめの内容.
  • 1.メンバーコントローラの作成


    メンバーコントローラへの依存関係の追加

  • controller/MemberController.java
  • package hello.practice1.controller;
    
    import hello.practice1.service.MemberService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    
    @Controller
    public class MemberController {
    
        private final MemberService memberService;
    
        @Autowired
        public MemberController(MemberService memberService){
            this.memberService = memberService;
        }
    }
  • 動作手順
  • スプリングが作動すると、最初のスプリング容器が現れる.
  • @Controller,SpringによりMemberControllerオブジェクトが生成されます.
  • 生成されたオブジェクトは、スプリングコンテナにスプリングによって登録および管理されます.
  • springコンテナではsping beanが管理されます
  • @Autowiredを使用して、springコンテナに登録されているメンバー・サービスにメンバー・サービスを関連付けます.
  • 依存注入(DI):注入依存性、対象依存関係を外部から入れる
  • 問題(エラー)



    MBerServiceオブジェクトを自動接続で注入しようとすると、MBerService
    スプリングコンテナに登録されていないため、エラーが発生します.

    2.スプリングシートの登録方法


    1.構成部品スキャンと自動依存関係の設定

  • 素子走査原理
  • @ComponentがあればSpringBinとして自動的に登録されます.
  • @Componentを含む次のコメントもSpringBinとして自動的に登録されます.
  • @Controller
  • @Service
  • @Repository
  • 会員サービススプリング空席登録(service/MemberService.java)
  • @Service
    public class MemberService {
        private final MemberRepository memberRepository;
        
        @Autowired
        public MemberService(MemberRepository memberRepository) {
            this.memberRepository = memberRepository;
        }
    }
  • リポジトリスプリングライブラリの登録
    @Repository
    public class MemoryMemberRepository implements MemberRepository {'생략'}
  • スプリング空席登録画像

    注意:スプリングコンテナにスプリングシートを登録する場合、デフォルトでは単一の色調(1つのみ登録)
  • 2.javaコードを使用してスプリングシートを直接登録する

  • SpringConfig.java
  • package hello.practice1;
    
    import hello.practice1.repository.MemberRepository;
    import hello.practice1.repository.MemoryMemberRepository;
    import hello.practice1.service.MemberService;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class SpringConfig {
        @Bean
        public MemberService memberService(){
            return new MemberService(memberRepository());
        }
    
        @Bean
        public MemberRepository memberRepository(){
            return new MemoryMemberRepository();
        }
    }
  • メモリではなく他のライブラリに変更する予定であるため、springbinの登録時にjavaコードを使用してspringbinを設定します.
  • コンポーネントスキャンで行う場合は、MemoryMemberRepositoryを変更する必要がありますが、javaコードを使用する場合は、コードを変更せずにスプリングシートを登録できます.
  • を参照してください.実際の操作では、コントローラ、サービス、リポジトリなどのコードは主に複合スキャンを使用します.インプリメンテーションクラスを未定または必要に応じて変更する場合は、設定によってスプリング空席として登録します.