📍 스프링 빈을 등록하는 2가지 방법
📍 컴포넌트 스캔 원리
@Service
public class MemberService {
private final MemberRepository memberRepository;
@Autowired
public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
}
생성자에서 @Autowired로 연결 시켜주기 (스프링 컨테이너에 의존 관계 주입시켜주는 것 = DI )
-> 여러 컨트롤러 간에 공유하면서 사용가능
@Controller
@Service
@Repository
-> 스프링 빈으로 자동 등록됨
🔴 주의: @Autowired 를 통한 DI는 helloController , memberService 등과 같이 스프링이 관리하는 객체에서만 동작한다.
@Configuration
public class SpringConfig {
@Bean
public MemberService memberService() {
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
}