본문 바로가기
Spring/스프링 입문

[스프링 입문] 4 - (1) 컴포넌트 스캔과 자동 의존관계 설정

by Poorm 푸름 2023. 8. 5.

[컴포넌트 스캔과 자동 의존관계 설정]

 

- 컴포넌트 스캔 방식 : @로 시작하는 것들 (눌러서 확인해보면 Component라고 적혀있음)

                                  (컴포넌트 스캔은 스프링 빈이 자동으로 등록된다)

                                : 컴포넌트를 사용할 때엔 같은 패키지 안에서끼리 사용이 가능하다

                                    

 

- membercontroller가 memberservice, memberRepository를 조작 할 수 있게 의존관계를 설정

 

- 스프링 빈을 등록하는 방법 2가지

 : 컴포넌트 스캔, 의존관계 설정

 : 자바 코드로 직접 등록 (이게 더 편리)

 

** 스프링 빈은 각 클래스 마다 하나씩 등록하도록 해서 서로 공유하도록 한다 (=싱글톤 등록) **

 

1. @Controller, @Autowired

 

src - main - java - hello.hellospring - controller 우클릭 New - Java Class →  MemberController

입력  강의자료 코드 붙여넣기 

 

 

private final MemberService memberService

  : [변경 전] private final MemberService memberService = new  MemberService()

    [변경 후] private final MemberService memberService

  : MemberController 안에 MemberService 불러온다

    (= new ~ 부분 삭제)

 

☞ @Autowired

  : MemberService를 연결해주는 역할

 

 public MemberController (MemberService memberService) {

              this.memberService = memberService }

  : 객체를 계속해서 새로 만드는 것을 방지하기 위해 이전에 썼던 것들을 불러오는 작업

    (Fn + Alt + Insert 입력 후 Constructor 클릭 후 Ok)

 

2. @Service

 

MemberController 클래스에서 Ctrl 누른 채 MemberService 클릭해서 MemberService 로 이동 

public 위에 @Service 입력 

 

 

☞ @Service

  : 스프링 컨테이너에 MemberService를 등록주는 역할

 

☞ @Autowired

  : MemberService와 MemoryMemberRepository를 연결해주는 역할

 

3. @Repository

 

MemberService 클래스에서 Ctrl 누른 채 MemberRepository 클릭해서 MemberRepository 로 이동 

다시 Ctrl 누른 채 save 클릭 → MemoryMemberRepository 클릭 → public 위에 @Repository 입력

 

 

☞ @Repository

  : Repository도 등록

 

 

<스프링 빈 등록 현황>

 

[MemberController] ---------------- [MemberService] ---------------- [MemberRepository]

                                         ↓                                              ↓

                    이때 둘을 연결해주는 것           이때 둘을 연결해주는 것

                          = @Autowired                            = @Autowired

 

 

1. Controller 통해서 외부요청 받기

2. Service로 비지니스 로직 만들기

3. Repository로 데이터 저장하기

 

 

이 때 알아둘 단축키!!

 

1. 해당 클래스로 이동

 Ctrl 누른 채 클릭

 

2. Generate - Constructor

☞  Fn + Alt + insert 입력 후 검색

 

 

[출처] 김영한 강사님 인프런 스프링 입문 

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8

 

[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세

www.inflearn.com