inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링과 JPA 기반 웹 애플리케이션 개발

닉네임 수정

Validator의 Bean 등록 여부에 따른 동작 차이에 대해 질문있습니다.

274

최동혁

작성한 질문수 4

0

Validator를 Bean으로 등록해서 자동 주입으로 받아와서 사용하는 것과 new로 선언해서 사용하는 것에 동작상의 차이가 있나요?

 닉네임 수정하고 변경하기 버튼 누르면 NullPointException이 나더라구요.

에러가 나는 지점이 Validator에서 Repository 읽어오는 부분에서 에러가 발생했다고 나와요.

그래서 디버깅으로 찍어봤을땐 원하는대로 값 다 들어왔었는데 동작을 안했습니다.

일단 문제 해결은 Contorller쪽에서 NicknameValidator 사용 할 때 자동 주입으로 받아와서 사용하니깐 해결 되더라구요.

근데 Password의 Validator는 new로 선언했었구 sing-up이랑 Nickname에서는 자동 주입 사용하는데 이 두개의 동작이 이런 에러가 날정도로 차이가 존재하나요?

빈으로 등록하면 스프링 컨테이너 라이프 사이클을 사용할 수 있는 점 이외에는 동작상 차이가 없는것 아닌가요 ?

JPA spring-boot thymeleaf spring java

답변 2

1

백기선

차이가 있죠. 일단 Repository는 빈이고, 스프링이 빈으로 관리하는 객체들만 의존성 주입을 받을 수 있습니다. Validator가 Repository를 사용하고 있고 Repository를 빈으로 주입받아 사용할거라면 Validator도 역시 빈으로 등록해야 합니다. 그래서 Validaotr가 사용할 Repository를 스프링이 의존성 주입을 해줄테니까요.

그래서 new로 선언해서 사용한 경우 Vadalitor가 사용하는 Repository 객체가 주입이 안됐을거고 그래서 NullPointerException이 발생했을 겁니다.

수강 기록을 봤더니 스프링 프레임워크 핵심 기술도 수강하신걸로 보이는데 다시 한번 복습하시는게 좋을 거 같습니다.

0

최동혁

답변 감사합니다 !

Study 개설하는 로직에 대해서 궁금점이 있습니다.

0

55

1

앱 재시작 후 회원가입

0

103

1

app.host 관련 질문이 있습니다

0

97

1

강의 버전 정보

0

125

1

event, study 참조

0

220

2

비밀번호 변경 로직 질문있습니다.

0

135

1

프로필 수정 처리 merge 질문입니다.

0

108

1

회원가입 성공 후 redirect이동시 권한 질문

0

494

3

HtmlEmailService 개발하다 생긴 의문입니다

0

250

2

postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다

0

431

2

수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다

0

261

2

[긴급-재업로드]수업질문 로그인 안 되는 문제

0

236

1

[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요

0

277

1

cropper 오류 문제로 질문드립니다..

0

288

2

authentication관련 질문...

0

495

2

모임참가 취소 할때 로직 질문

0

350

3

안녕하세요 기선님 질문이있습니다..

0

229

1

HTML코드 및 강의 중간자료들

0

679

3

springSecurity

0

523

2

버전 질문입니다.

0

302

1

부트스트랩, css

0

354

2

영속성 컨텍스트 질문

0

248

2

다시 강의를 보니 드는생각..

0

352

2

5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?

0

313

1