컨트롤러
컨트롤러의 @Controller, @Autowired는 전과 똑같이 써줘야 함
@Controller
public class MemberController {
private final MemberService memberService;
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
}
컨트롤러가 원래 컨테이너에서 관리하는 것이라서 직접 못함
생성
com.<파일이름> 패키지 아래, SpringConfing 클래스 생성
@Configuration 어노테이션을 클래스 위에 선언
**@Configuration
public class SpringConfig {**
스프링 Bean에 맴버 서비스, 리포지토리를 등록해줌
@Bean
public MemberService memberService() {
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository(){
return new MemoryMemberRepository();
}
장점 : 리포지토리를 변경하기가 쉬움
public MemberRepository memberRepository(){
return new DbMemberRepository(); // << 얘만 바꿔주면 됨
}