inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 프레임워크 핵심 기술

데이터 바인딩 추상화: Converter와 Formatter

DataBinding 학습 중 @PathVariable 어노테이션에 대한 고찰

해결된 질문

246

Henu

작성한 질문수 66

1

안녕하세요.

DataBinding 학습 중 궁금한 사항이 생겨 질문을 남깁니다.

WebMVC 기반으로 테스트 코드를 작성하면서  @PathVariable 어노테이션을 사용했었는데요.

해당 어노테이션이 실제 어떤 역할을 하는지 구글 서칭해보니,

GET 방식 요청의 템플릿 변수({템플릿 변수})의 값을 읽어들일 때 주로 사용하는 어노테이션이라고 합니다.

(수업중 /event/{event}에서 {event}값이 되겠네요.)

여기서 한가지 의문이 들었습니다.

수업에서 URL 요청에 따른 '문자열 타입'의 파라미터(event) 값이 EventController getEvent(Event event) 메소드의 'Event 타입' 매개변수로 전달됨에도 예외가 발생하지 않고 정상적으로 실행이 될 수 있었던 이유는

Bean으로 등록되어 있는'Converter' 또는 'Formatter'가 동작함으로써 내부에서 구현된 특정 코드를 거쳐

'문자열 타입'의 파라미터를 형변환 시키고 'Event 클래스'의 생성자를 통해 프로퍼티에 값을 넣어 줌과 동시에 객체를 생성 및 반환하여 getEvent() 메소드의 매개변수로 Data Binding이 일어났기 때문에 예외가 발생하지 않았던 것인가요?

추가로 이를 응용하여 URL 매핑을 '/event/{id}' 처럼 명시적으로 설정한 경우 @PathVariable 어노테이션의 네임스페이스(?)를 사용하여 @PathVariable("id")처럼 설정해도 동일한 결과를 얻을 수 있는 이유도 위 문맥과 같은 의미일까요?

미리 답변 감사드립니다.

java spring

답변 1

2

백기선

네 이해하신게 맞습니다. PathVariable은 결국 WebDataBinder가 처리하는데 이 때 DataBinder에 있는 ConversionService를 쓸 수 있고 (그거대신 PropertyEditor들을 쓸 수도 있지만 그건 아마도 스프링 3이전 버전에서나 그럴겁니다.) ConversionService에 들어있는 컨버터나 포매터가 쓰이는 거죠.

BeanFactory와 ApplicationContext 중 사용하고 싶은 컨테이너를 설정 할 수 있나요?

0

381

1

프로젝트 생성에 관련한 질문

0

376

1

안녕하세요 강의 내용을 듣다가 궁금점이 생겨 글을 남기게 되었습니다.

0

371

1

HttpServeltRequest 객체의 빈 스코프에 대해 질문 드립니다.

0

304

0

PropertyEditor non thread-safe 한 이유

0

491

1

빈의 초기화 시점이 궁금합니다.

0

393

1

이 강의 예제소스 없나요?

0

345

1

릴로딩 기능에 대해

0

404

1

Bean 을 특정 Application...Event 발생 후, 등록하는 방법이 궁금합니다

0

612

3

IoC/DI와 POJO의 관계

1

749

2

기선님 RetentionPolicy에 대해서 질문이 있습니다.

0

291

1

안녕하세요 기선님!

3

486

3

비동기적으로 실행할때

0

314

2

"Prototype/프록시"로 설정했는데 동일한 객체로 나옵니다

0

530

4

@Autowired 로 가져오는 Bean은 ?

2

280

1

Type-Safety 의미

0

538

1

Null Point

0

318

1

WebDataBinder를 특별히 쓰는 이유가 있나요?

0

384

1

안녕하세요?

0

336

2

애노테이션이 없습니다(?)

0

279

3

코드 중 변수 앞에 적는 것이 무엇인지 알고 싶습니다.

0

295

2

강의 하시면서 사용하는 resolving 이란 단어는 어떤 의미인가요?

1

1499

1

IOC컨테이너관련 질문입니다

0

245

3

인터페이스가 있는 경우 인터페이스 타입으로 주입하는 추가 질문입니다.

0

259

1