컴포넌트 스캔과 자동 의존관계 설정
- 컴포넌트 스캔 대상 : 메인 메서드가 있는 패키지를 포함해서 하위패키지까지 찾아서 스프링 빈으로 등록해 줌.
@Controller
스프링 컨테이너 통이 생기는데 , @Controller 가 있으면 MemberController객체를 생성해서 스프링에 넣어 두고 관리.
컨테이너에서 빈이 관리된다고 표현
생성자가 있으면 생성자를 호출
new MemberService()를 만들어서 사용하게 되면 생기는 문제점: 또 다른 컨트롤러에서도 가져다 쓸 수 있다
MemberSevice()는 여러 개 만들 필요 없이, 하나만 만들어 공용으로 사용하면 좋다
→컨테이너에 등록하면 하나만 등록 됨
스프링이 관리하게 되면 스프링 컨테이너에 등록하고 받아 써야 함
@Autowired
생성자에 @Autowired가 있으면 스프링이 컨테이너에 있는 memberService와 연관된 객체를 연결
@Service를 입력해주면 스프링컨테이너에 MemberService가 등록됨
@Repository
구현체에 등록해준다
Controller를 통해 외부 요청을 받고, Service에서 비즈니스 로직을 만들고, Repostiory에 데이터 저장
자바 코드로 직접 스프링 빈 등록하기
필드 주입
생성자 주입
Setter 주입
단점 : Controller를 호출했을때 Public으로 열려 있어야 함
아무나 호출 할 수 있게 열려 있는것. 조립 시점에
중간에 잘못 바꾸면 문제가 생긴다
컴포넌트 스캔으로 하면 여러 코드를 변경해야 하지만 , 그럴필요가 없다 (설정 파일만 손 대면 됨)
'개발 공부 > Spring' 카테고리의 다른 글
스프링 입문 - 회원관리 예제로 웹MVC개발 (조회) (0) | 2023.11.27 |
---|---|
스프링 입문 - 회원관리 예제로 웹MVC개발 (등록) (0) | 2023.11.27 |
스프링 입문 - 회원관리 예제 (백엔드 개발) (1) | 2023.11.24 |
스프링 입문 - 스프링 웹 개발 기초 (0) | 2023.11.23 |
스프링 입문 - cmd에서 빌드하고 실행하기 (윈도우) (1) | 2023.11.22 |