component scan 범위 지정관련 문의 드립니다.
service, repository interface에 직접 Bean 으로 DI 를 위하여 scan 범위를 controller 만 잡는다는 의미를 정확하게 이해하고 싶어서요.
scan 범위를 제거한다면
@service, @repository 에 의해서 모든 서비스와 레포지토리가 대상이 되고 Spring container에 등록은 되지만
수동으로 등록하는 Bean(MemoryConfig)에 의해
ItemService와 ItemRepository에 주입되어 타입이 정해지는걸로 이해하는데요.
scan 범위를 지정한것은 불필요한 service, repository가 bean으로 등록되는것을 막기위한 효율의 측면인가요?
답변 1
0
안녕하세요. 룔님, 공식 서포터즈 y2gcoder입니다.
생각하신 바가 맞습니다.
아시다시피 스프링의 빈 등록 방법은 크게 @Component scan을 이용한 자동등록과 @Configuration + @Bean을 통한 수동 등록이 있습니다. 해당 강의에서는 다양한 DB 접근 기술을 사용하고, 점차적으로 코드를 현대 방식, 혹은 실무 방식에 맞게 바꿔나가고 있습니다. 영한님은 혹시나 수강생분들이 이전 강의 부분 코드를 다시 보실 때를 대비해 이전 코드들을 그대로 둔 채로 새로 코딩하는 방식을 취하고 계십니다.
만약 컴포넌트 스캔으로 모든 빈들을 자동 등록한다면 이전 코드와 새 코드 간 겹치는 부분으로 인한 충돌로 정상작동하지 않을 수 있기 때문에 이번 강의에서 바뀌지 않는 controller 부분만 컴포넌트 스캔으로 자동 등록해주고, 나머지 들은 빈으로 수동등록해주고 있습니다.
감사합니다.
RepositoryTest의 패키지 위치가 domain인 이유
0
35
2
REQUIRES_NEW 해결 방법에 대해서 질문있습니다!!
0
31
1
update()에 사용하는 setter 질문드립니다.
0
49
1
SQL 중심적 개발의 문제점에 대한 질문
0
72
1
혹시 Containing 을 안쓰신 이유가 있을까요?
0
86
2
[공유] 스프링부트 4.x 버전 mybatis 연동
0
180
1
@repository 어노테이션
0
89
3
ItemService
0
59
1
논리 커밋, 물리 커밋 질문드립니다.
0
54
1
내부 트랜잭션 커밋은 필수인가요?
0
57
1
프록시 커넥션 객체를 반환할 때 생성하는건가요?
0
55
1
Transaction readOnly 성능 개선 (김영한님의 대한 감사인사)
2
179
2
JPQL 대신 네이티브 쿼리를 사용해야 하는 경우
0
80
1
@EventListener(ApplicationReadyEvent.class) 관련
0
88
1
트랜잭션 동기화 매니저와 데이터 소스
0
77
1
DB 관련 강의 개설 계획은 없으신건가요?
0
133
2
물리 트랜잭션 과 논리트랜잭션 용어를 맞게 이해한걸까요
0
94
1
스프링 3 버전 이상 rollbackFor 변경된듯요
1
113
1
트랜잭션 전파 질문.
0
87
1
프로젝트 오픈 에러
0
126
1
외부 트랜잭션에서 isNewTransaction이 false로 나오는거에 대해 질문드립니다
0
84
2
같은 스레드를 사용하면 트랜잭션 동기화 매니저는 같은 커넥션을 반환
0
73
1
h2 인메모리 테스트중 예약어 충돌날 경우 대처방법
0
104
1
커스텀aop와 트랜잭션을 같이 사용할때 우선순위에 관한 질문
0
98
2





