SpringConfig
package com.danny.learningspring;
import com.danny.learningspring.repository.MemberRepository;
import com.danny.learningspring.repository.MemoryMemberRepository;
import com.danny.learningspring.service.MemberService;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SpringConfig {
@Bean
public MemberService memberService(){
return new MemberService(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
}
- @Configuratoin -- 의존관계 설정, Bean을 등록하기 위한 어노테이션
- @Bean 어노테이션을 붙인다고 되는 것이 아니고, @Bean을 사용하는 클래스에는 반드시 @Configuration 어노테이션을 활용하여 해당 클래스에서 Bean을 등록하고자 함을 명시해주어야 함
- 위와 같이 자바 코드로 직접 스프링 빈 등록 가능
- 향후 Repository(DB)를 변경해야할 때 Configuration파일만 바꿔주면 된다는 장점이 있음
- ConponentScan방식으로 빈 등록을 한다면 일일이 찾아가서 바꿔줘야함
- 컨테이너에 빈 등록은 하나만 가능하기 때문에 직접 등록을 했다면 기존의 Service와 Repository의 생성자를 지워야함
댓글