해결된 질문
작성
·
169
0
@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