강의

멘토링

로드맵

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

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

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

Giới thiệu Spring - Học các kỹ thuật truy cập Spring Boot, Web MVC, DB thông qua code

Quét thành phần (Component Scan) và thiết lập quan hệ phụ thuộc tự động

컴포넌트 스캔에서

Viết

·

269

1

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

컴포넌트 스캔에서 Service와 Repository 클래스 위에 @Service 와 @Repository 써줄때 @Component를 써도 빈에 등록되고 상관없다고 하셨는데 @Service와 @Repository로 쓰면 한눈에 봤을때 서비스와 리포지토리구나 알 수 있어서 가독성을 위해 쓰는건가요? 아니면 @Component보다 서비스나 리포지토리에 사용할 수 있는 다른 기능이 있는건가요?
springMVCspring-bootjava

Câu trả lời 2

1

안녕하세요. 박훈희님, 공식 서포터즈 David입니다.

 

큰 차이는 없으며 레이어(Controller, Service, Repository)를 구분하기 위한 마커로 사용합니다.

예를들어 서비스 레이어에만 특별한 로직을 걸어주고 싶다면 AOP를 사용할 때 Service 애노테이션만 찾게끔 하면 되겠죠.

 

이외에 

@Controller의 경우 스프링에서 감지하여 핸들러로 등록합니다. @Controller 대신 @Component로 바꾸시고 요청보내시면 페이지 못 찾는다고 나옵니다. 이 부분은 MVC 1의 스프링 MVC - 시작하기편에 나옵니다.

@Repository의 경우 예외 번역에서 사용됩니다. 아래 링크 참고해주세요.

https://docs.spring.io/spring-framework/docs/current/reference/html/data-access.html#orm-exception-translation

@Service의 경우 아직 특별한 내부 사용은 없는 걸로 알고 있습니다.

 

감사합니다.

0

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

답변 감사드립니다

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

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

Đặt câu hỏi