13個の構成部品をスキャン


コントローラによる外部要求の受信、サービスからのビジネスロジックの作成、レポートからのデータの格納(定型化されたモード)
  • コントローラオブジェクトがスプリングコンテナ内にある
  • .
  • コントローラに関する機能動作
  • スプリング管理
  • HelloControllerは、ばねが立ち上がるときにばね容器
  • に登録する.
  • 以下のコードが登録できない理由:MemberServiceは純粋なJavaコードであるため、
  • @Controller
    public class MemberController {
        private final MemberService memberService;
    
        @Autowired//스프링이 스프링 컨테이너에 있는 memberService와 연결시켜 주는 역할
        public MemberController(MemberService memberService){//생성자로 한번 등록함
            this.memberService=memberService;
        }
    } 
  • ソリューション:@Service,@Repository
  • //MemberSerivce.java
    @Service
    public class MemberService {
        private final MemberRepository memberRepository;
    }
    //MemberRepository.java
    @Repository
    public class MemoryMemberRepository implements MemberRepository{
    
        private static Map<Long, Member> store = new HashMap<>();//메모리 저장소
        private static long sequence = 0L;
    }

    @Componentはスプリングシートに登録するプロセスであり、@Autowiredは相互に関連付けられたロールを作成します.

    スプリングシートを登録する2つの方法

  • コンポーネントを自動的にスキャンし、依存関係を確立します:@Controller、@Service、@Repository
  • javaコードを使用してSpringBin
  • を直接登録
  • 素子を走査する自動依存関係
  • を確立する.
  • @Component Arnovation SpringBinとして自動登録
  • @Controllerコントローラが自動的にスプリング空席に登録されたのも、コンポーネントスキャンのためです
    次の
  • @コンポーネントを含むコメントも、@Controller、@Service、@Repository
  • として自動的に登録されます.
    Tip)スプリングコンテナにスプリングシートを登録する場合、デフォルトはモノトーンです.(1つだけ登録して共有する)したがって、同じスプリングシートであれば、同じ例である.
    春入門13(金英漢)