@ComponentScan의 기본 동작클래스에 @Configuration 어노테이션과 함께 @ComponentScan 어노테이션이 붙어 있으면, 해당 Configuration 은 해당 패키지 하위의 모든 클래스를 스캔해 @Component 어노테이션이 붙은 객체들을 모두 Bean으로 만든다. 예를 들어 다음과 같은 패키지 구조와 파일들이 있다고 해보자. section8 패키지는 다음 경로에 있다: com.kotlinworld.spring.di.section8 이곳에서 ScanConfiguration파일은 @Configuration 어노테이션과 @ComponentScan 어노테이션이 붙은 클래스이고@ComponentScan@Configurationclass ScanConfiguration ScanReq..
@ComponentScan
@Bean 어노테이션 사용해 Bean 등록하기이전 글에서 유저 정보를 조작하는 UserRepository 인터페이스를 구현하는 객체가 InMemoryUserRepository와 DbUserRepository 두개가 있고, 이 중 하나를 UserCreator 클래스에서 사용한다고 했을 때 코드를 다음과 같이 구성했었다.interface UserRepository { fun createUser(id: String, user: String)}class InMemoryUserRepository(): UserRepository { override fun createUser(id: String, user: String) { println("User $user created with id: $..