강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của hanbin10184700
hanbin10184700

câu hỏi đã được viết

Trong thực tế! Phát triển ứng dụng quản lý thư viện với Kotlin và Spring Boot (tái cấu trúc dự án Java)

Bài học 39. Sử dụng Querydsl - Phương pháp thứ hai

BookQueryDslRepository에 @Repository 애너테이션이 아니라 @Component 애너테이션을 사용하신 이유가 궁금합니다.

Đã giải quyết

Viết

·

423

1

안녕하세요. 친절하고 좋은 설명 덕택에 저번 기본편부터 이번 실전편까지 강의를 재미있게 듣고 있습니다.

 

제목 그대로, @Component가 아니라 @Repository 애너테이션을 붙이는 편이 더 낫지 않나 해서 질문 드립니다:

  • @Repository 애너테이션을 붙임으로써, 스프링에서 Data Access 과정에서 발생하는 예외들을 스프링 예외들로 번역해주는 기능을 제공한다는 점에서

  • 해당 빈이 @Repository 임을 명시해주는 편이 해당 빈이 어떤 역할을 수행하는가에 대한 설명이 되기 때문에

그렇다고 생각했습니다.

 

저번 시간의 경우 QueryDslRepointerface로 만들고, 해당 인터페이스를 이용해 기존 Repo와 연결하는 방식을 사용했었는데, 그 경우에는 @Repository 애너테이션이 붙는 것으로 처리된다(최종적으로는 `@JpaRepository`를 extends한 것이 빈으로 등록되니까요)고 알고 있습니다. QueryDSL 2편과 마지막 편에서 QueryDslRepository@Component를 붙이신 것이 어떤 이유인지 궁금합니다.

 

감사합니다.

springkotlinjavaspring-bootrefactoring

Câu trả lời 2

1

lannstark님의 프로필 이미지
lannstark
Người chia sẻ kiến thức

안녕하세요, 한빈님!! 크으~~ 너무 좋은 질문이십니다! 😊

 

저는 사실 다음 글과 같은 이유로 @Repository 를 붙이는 것보다는 @Component 를 붙이는 것을 선호합니다!!

https://www.inflearn.com/questions/650061

 

요약드리자면,

  1. @Repositoy 가 자동으로 변환해주는 예외 때문에 암시적인 처리가 발생해 의도하지 않은 동작을 경험한 적이 간혹 있었고

  2. 명시적인 예외 처리를 하는 것을 선호하기

때문입니다!!

 

물론, 제 개인적인 생각이고 또 다른 분들은 @Repository 를 선호하시기도 하더라고요!!!

(저 역시 팀 차원에서 Align이 맞는다면 100% 따르는 편입니다 ㅎㅎㅎ)

 

답변이 되었다면 좋겠습니다!! 혹시라도 더 궁금하신 내용 있으시다면, 편하게 질문 주세요!!

편안한 밤 되세요, 감사합니다~!! 🙏

0

hanbin10184700님의 프로필 이미지
hanbin10184700
Người đặt câu hỏi

헉, 정신 없이 지내다가 답변이 달린 줄도 모르고 있었네요.

예외 번역 때문이었군요. 감사합니다! 덕분에 의문이 좀 풀렸습니다.

Hình ảnh hồ sơ của hanbin10184700
hanbin10184700

câu hỏi đã được viết

Đặt câu hỏi