작성
·
221
1
안녕하세요 강의 듣던 중 궁금함이 생겨 문의드립니다.
@Configuration은 CGLIB을 이용하여 스프링컨테이너의 싱글톤을 보장해준다로 이해하였습니다.
그런데 "@Autowired은 타입이 같은 bean을 찾아 자동주입해준다"를 듣고보니 Autowired가 있을 경우에도 싱글톤이 보장될 거 같아 테스트를 해보니 실제로 싱글톤을 보장해주고 있었습니다. 그렇다면 @Componentscan과 @autowired를 조합할 경우 configuration은 불필요한 애노테이션인가요?
아래 코드에서 Service와 Member에 주입된 Repo 인스턴스가 동일한 인스턴스였습니다.
package mytest;
public class MyTestClass{
@ComponentScan
static class MyAutoConfig{
}
@Component
static class Repo{
public Repo(){
System.out.println("Created!");
}
}
@Component
static class Service{
private final Repo repo;
@Autowired
public Service(Repo repo){
this.repo = repo;
}
public Repo getRepo(){
return this.repo;
}
}
@Component
static class Member{
private final Repo repo;
@Autowired
public Member(Repo repo){
this.repo = repo;
}
public Repo getRepo(){
return this.repo;
}
}
답변 1
0
안녕하세요, 선종우 님. 공식 서포터즈 y2gcoder 입니다.
해당 링크를 참고해주시길 권해드립니다.
https://www.inflearn.com/questions/157309/componentscan-%EC%8B%9C-singleton%EB%B0%A9%EC%8B%9D
감사합니다.
이해했습니다. 감사합니다.