인프런 커뮤니티 질문&답변
OrderService에서 itemService ItemRepository를 주입하는 것에 대해서 질문이 있습니다.
해결된 질문
작성
·
219
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
김영한 멘토님 덕분에 스프링에 대해서 쉽게 공부할 수 있어서 항상 감사함을 느끼고 있습니다.
멘토님의 강의를 복습하던 중 궁금한 것이 생겨서 질문 남깁니다.
제가 의구심을 가지는 코드 부분은 다음과 같습니다.
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
김영한 멘토님 덕분에 스프링에 대해서 쉽게 공부할 수 있어서 항상 감사함을 느끼고 있습니다.
멘토님의 강의를 복습하던 중 궁금한 것이 생겨서 질문 남깁니다.
제가 의구심을 가지는 코드 부분은 다음과 같습니다.
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class OrderService {
private final MemberRepository memberRepository;
private final OrderRepository orderRepository;
private final ItemRepository itemRepository;
/** 주문 */
@Transactional
public Long order(Long memberId, Long itemId, int count) {
//엔티티 조회
Member member = memberRepository.findOne(memberId); Item item = itemRepository.findOne(itemId);
....
}
....
}
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class ItemService {
private final ItemRepository itemRepository;
....
public Item findOne(Long itemId) {
return itemRepository.findOne(itemId);
}
}
@Repository
@RequiredArgsConstructor
public class ItemRepository {
....
public Item findOne(Long id) {
return em.find(Item.class, id);
}
}
여기서 제가 궁금한 점은 OrderService에서 ItemService 대신 itemRepository를 주입한 이유가 궁금합니다! 물론, 둘 다 실행은 동일하게 되지만, itemRepository를 ItemService에서만 접근하게 하고, 타 클래스에서 item에 관한 로직은 무조건 ItemService으로만 접근하는 식으로 해야 item에 관련된 로직들이 응집도가 높아지고, 모듈 간 결합도가 낮아지지 않을까요?? 멘토님의 의견이 궁급합니다!
답변 1
1





