[스프링 입문] 4 - (1) 컴포넌트 스캔과 자동 의존관계 설정
[컴포넌트 스캔과 자동 의존관계 설정]
- 컴포넌트 스캔 방식 : @로 시작하는 것들 (눌러서 확인해보면 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 입력 후 검색
[출처] 김영한 강사님 인프런 스프링 입문
[무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 - 인프런 | 강의
스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확인해주세
www.inflearn.com