스프링 빈을 등록 및 의존관계 설정
MemberService 클래스, MemberRepository 인터페이스, MemoryMemberRepository 클래스, Member 객체 를 생성
MemberService를 통해서 Member를 가입 및 조회
MemoryMemberRepository에서 원하는 Member 넣고/빼기
여러가지 Test파일
Controller, ViewTemplate 필요하다
@Controller
public class MemberController {
}
Spring
이 처음에 구동될 때 생성된 Spring 컨테이너
에 Annotation이 달린 MemberController객체
를 생성해서 넣어두고 Spring
이 관리를 하게 된다단, 어떻게 해당 클래스를 스프링이 알고 접근할 수 있을까?
-> 스프링 빈으로 등록이 되있으면 알고 접근할 수 있다
@Component
를 포함하는 애노테이션이 달리면 스프링 빈으로 자동 등록된다@Controller
public class MemberController {
private final MemberService memberService;
//Autowired를 설정하면 스프링이 매개변수 memberService를 Spring Container에 있는 MemberService를 가져와서 연결시켜 준다
//MemberService를 어떻게 스프링이 알수 있을까? -> @Service를 넣어준다
@Autowired
public MemberController(MemberService memberService) {
this.memberService = memberService;
}
}
@Configuration을 이용하는 클래스를 하나 생생한다
@Bean을 달아줘서 해당 클래스를 스프링 컨테이너에 스프링 빈으로 등록해준다
후에 해당 객체가 불리게되면 스프링 컨테이너에서 찾아서 이어준다
직접 자바코드로 등록하는 상황
@Configuration
public class SpringConfig {
@Bean
public MemberService memberService() {
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
}
3가지 방법 존재
@Autowired
public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@Autowired
public void setMemberRepository(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}