inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

JPA 관련 질문입니다. 기본적인 질문이라 선죄송...

756

jcknow

작성한 질문수 5

1

강의 잘 듣고 있습니다. (그랜절)

다 듣고 수강평을 쓸 예정이지만, 중반이상 본 지금도

매우 만족흡족하면서 옆에서 개발지도해주는 느낌으로 잘 해나가고 있습니다. 

 

게시글 수정쪽 와서 

전반적인 구조와 설계를 살펴볼 겸 만지작 거려 봤는데 

괜히 이 친구가 눈에 밟혀서...

'왜 final 이지?' 라는 생각으로 final을 날려봤습니다. 

private final PostRepository postRepository; 

 

근데 에러가 좌라라라라라라랅

 

메세지는 아래처럼 postRepository를 주입받지 못해서 null 이란거 같은데 

Request processing failed; nested exception is java.lang.NullPointerException: Cannot invoke "com.in2l.in2Leisure.api.repository.PostRepository.save(Object)" because "this.postRepository" is null

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException: Cannot invoke "com.in2l.in2Leisure.api.repository.PostRepository.save(Object)" because "this.postRepository" is null

at app//org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)

 

 

다시한번 제 기본기 없음을 한탄하며, 

제가 아는 (써오던) final은 그저 더이상 바꾸기 싫을때 final이라는 단편적인 생각이고 

JPARepository를 상속받은 postRepository가 final은 왜 필요하고, 

final이 없으면 왜 주입을 못받는건지 모르겠습니다....

(아니면 주입의 문제가 아닌건가요? 설마....)

 

너무 근본, 근원, 기본적인 질문이라 

적절한 설명이 있는 블로그나 강의가 있으면 알려주셔도 어마무시 감사합니다. 

jpa spring-boot 에러 vuejs aws Spring Security JPA

답변 1

1

호돌맨

안녕하세요. 호돌맨입니다.
질문을 남겨주셔서 감사합니다.

final을 붙이는 이유는 롬복의 @RequiredArgsConsturctor와 관련이 있고, @RequiredArgsConstructor를 넣는 이유는 생성자와 관련이 있고, 생성자를 쓰는 이유는 설마 하셨던 생성자주입과 관련이 있습니다. (정확히 final을 붙이는 장점은 불변성을 위해서입니다)

관련링크: https://jackjeong.tistory.com/41
한글 검색키워드: 생성자 주입
영어 검색키워드: spring constructor injection

감사합니다. ㅎㅎ

Deprecated 관련 사항들

0

127

2

깃헙 collaboator 초대 관련

0

104

1

강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다

0

171

2

logout 후에 login 페이지 이동은 어디서 시켜주는건가요?

0

243

1

다중 데이터를 삭제 할 때

0

291

2

querydsl Q class 이슈

0

433

2

Windows WSL Vue 설정

2

255

1

Dip, @transactional

0

199

1

[vite] http proxy error: /auth/login

0

1066

2

로그인 하고 나서 GET요청으로 메인페이지 요청

0

246

2

GitHub Collaborator 초대 관련

0

283

2

Window에서 Vue.js 설정

0

334

2

collaboator로 초대받을 수 있을까요??

0

297

2

SecurityMockContext 로부터 유저 정보를 가져오기

0

275

1

섹션9 프론트의 코드를 보고싶습니다,,,

0

427

1

Spring Security - defaultSuccessUrl 질문

0

637

1

강의 화면이 나오지 않습니다. 음성과 자막만 나와요

0

313

1

JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ

0

702

2

ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상

0

1184

2

섹션10 언제 나오나요?

0

489

1

CommentService에서 Repository를 호출하지 않는데도

0

346

1

Editor....를 활용한 패턴에 질문있습니다.

0

500

1

섹션9 vue

0

460

2

Post에 edit 메서드 삼항연산자 질문

0

480

2