반응형
회원 컨트롤러에 의존관계 추가
@Autowired 어노테이션이 있으면 해당 메서드와 연관된 객체를 컨테이너에서 찾아서 연결 시켜준다. -> DI(의존성 주입)
@Controller: 컨트롤러를 통해서 외부요청을 받는다
@Service: 비즈니스 로직 생성
@Repository: 데이터 저장
위의 방법은 컴포넌트 스캔 방식으로 자동 의존관계 설정한 것이다.
원래는 @Component라고 해야 하지만 각 어노테이션마다 @Component가 내장 되어있기 때문에 동작한다.
MemberController 작성
package hello.hellospring.controller;
import hello.hellospring.service.MemberService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
@Controller
public class MemberController {
// 컨트롤러마다 서비스를 생성해서 사용할 필요가 없음 -> 하나만 생성해서 공유하여 사용
// private final MemberService memberService = new MemberService();
private final MemberService memberService;
// 생성자에 @Autowired 어노테이션이 선언되어있으면 필요한 객체를 스프링 컨테이너(been 등록되어있는)에서 찾아서 연결 시켜준다. -> DI
// 생성자는 자동으로 처음 실행된다.
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
}
컴포넌트 스캔의 기준은 아래 어노테이션이 작성된 하위 패키지에만 적용된다.
@SpringBootApplication
빈등록은 하나만!! -> 하나로 서로 공유하여 사용(메모리 절약)
반응형
'코드로 배우는 스프링 부트 - 인프런' 카테고리의 다른 글
회원 웹 기능 - 홈 화면 추가 (0) | 2022.08.13 |
---|---|
자바 코드로 직접 스프링 빈 등록하기 (0) | 2022.08.13 |
회원 서비스 테스트 (0) | 2022.08.08 |
회원 서비스 개발 (0) | 2022.08.07 |
회원 리포지토리 테스트 케이스 작성 (0) | 2022.08.06 |