초보 웹 개발자를 위한 스프링5 프로그래밍 입문
Ch5 p139
스캔할 때 사용하는 빈 이름과 수동 등록한 빈 이름이 같은 경우 수동 등록한 빈이 우선한다. 즉 MemberDao 타입 빈은 AppCtx에서 정의한 한 개만 존재한다.
@Configuration
@ComponentScan(basePackages = {"spring"}
// , excludeFilters = @Filter(type = FilterType.ASPECTJ, pattern = "spring.*Dao")
)
public class AppCtx {
@Bean
public MemberDao memberDao() {
System.out.println("manual: " + this);
return new MemberDao();
}
...
}
@Component
public class MemberDao {
public MemberDao() {
System.out.println("auto: " + this);
}
...
}
System.out.println(ctx.getBean(MemberDao.class));
manual: config.AppCtx$$EnhancerBySpringCGLIB$$8f711409@6591f517
auto: spring.MemberDao@345965f2
명령어를 입력하세요.
spring.MemberDao@345965f2
테스트 결과 자동으로 등록된 빈이 사용되었다. 버전이 바뀌면서 달라진 점인지 확인해 봐야겠다.