inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tạo máy chủ đầu tiên của bạn bằng Java và Spring Boot Bất kỳ ai cũng có thể dễ dàng chuyển từ giai đoạn phát triển sang triển khai! [Gói phát triển máy chủ tất cả trong một]

Bài 18. Chia Controller thành 3 phần - Service và Repository

어노테이션에 대해서

504

JaeHongMin

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

3

 안녕하세요 강의 잘 듣고 있습니다!!

강의를 듣다가 궁금해서 질문 남깁니다.

Controller와 Service 연결할때와 Service와 Repository를 연결할때 사용하는 @Autowired는 사용하지 않아도 자동으로 연결이 되는건가요??

Service클래스와 Repository클래스 위에 @Service, @Repository 어노테이션을 사용할떄도 있고 이번 강의처럼 사용하지 않을떄도 있는데 아직까지 차이점을 모르겠습니다.

spring aws spring-boot mysql jpa JPA java

Câu trả lời 2

4

woopaca

@Controller, @Service, @Repository 모두 코드를 들여다 보면 @Component 애노테이션이 붙어있을 겁니다. @Component 애노테이션은 컴포넌트 스캔의 대상이 되어 '스프링 빈'으로 등록이 되어 '스프링 컨테이너'가 관리하게 됩니다. 그래서 @Service, @Repository 애노테이션을 사용했을 때와 사용하지 않았을 때의 차이는 스프링 빈으로 등록 및 관리가 되냐 안 되냐의 차이가 있습니다.

또한 @Autowired는 이름에서 알 수 있듯이, 자동으로 연결해 주는 것입니다. (자동 의존관계 주입) 만약 생성자를 통해 주입을 받는 경우, 생성자가 하나라면 @Autowired는 생략이 가능합니다. (스프링 빈으로 등록되었을 때에 해당됩니다^^)

0

lannstark

완벽한 설명이십니다~~~ 감사합니다! 찬우님!! 😊 🙇

1

lannstark

안녕하세요 JaeHongMin님!! 좋은 질문 감사드립니다!! 😊

찬우님께서 정말 잘 설명해주신 것처럼, 똑같은 Service 클래스 / 똑같은 Repository 클래스이지만,

@Service 혹은 @Repository 어노테이션을 사용하게 되면 '스프링 빈'이 되고

저희가 직접 new Service() 라는 생성자를 불러주면, '스프링 빈'이 아닌 것이에요!!!!!

 

@Autowired 라는 어노테이션 자체는 '스프링 빈'에만 적용할 수 있고 18강은 저희가 직접 생성자를 호출하였기 때문에 (즉 스프링 빈이 아니기 때문에) @Autowired 를 사용하지 않은 것입니다!

 

지금 듣고 계신 18강을 넘어, 19강부터 21강까지 들어보시면 (특히 19강에서 new Repository()@Repository 의 차이점을 코드로 보실 수 있습니다!) 조금 더 감이 오실겁니다!!

 

혹시나 <Section 3. 역하릐 분리와 스프링 컨테이너>를 모두 들으셨는데도 아직 차이점 잘 정리되지 않으신다면, 한 번더 편하게 질문 올려주세요!!!

감사합니다!!! 🙏

패키지 구분에 대해 궁금한게 있습니다

0

28

2

리액트 관련 질문이 있습니다.

0

66

2

스프링부트 버전

0

79

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

62

2

33강. UserLoanHistory의 관계성에 대한 질문

1

57

2

Java JDK 버전 문의의 건

0

138

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

91

3

h2 console 접속했을 테이블 질문

1

69

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

82

2

15강. updateUser() 질문

0

57

2

깃허브 질

0

88

2

여기까지 다 끝냈다고 하셨는데

0

81

2

왜안될까요

0

72

2

MySQL 창이안ㄴ뜹니다

0

59

2

포스트맨

0

54

1

spring 개념적인 질문

0

73

2

인텔리제이 샘플코드 실행 안됨 오류

0

146

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

88

1

마이그레이션 오류입니다.

0

178

3

Whitelabel Error Page 오류가 났습니다.

0

175

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

95

3

궁금한게 있습니다.

0

62

2

DTO 관련

0

71

2

궁금한게 있습니다!

0

72

2