Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

개발자되기 프로젝트

[TypeConverter] Spring Type Converter 본문

인프런/[인프런] 스프링 MVC 2

[TypeConverter] Spring Type Converter

Seung__ 2021. 10. 1. 21:06

1. ex) 문자 -> 숫자


@RestController
public class HelloController {

    @GetMapping("/hello-v1")
    public String helloV1(HttpServletRequest request){
        String data = request.getParameter("data"); //문자 타입 조회
        Integer integer = Integer.valueOf(data); //숫자 타입으로 변경
        System.out.println("integer = " + integer);

        return "ok";
    }

}
  • 분석
    • localhost:8080/hello-v1?data=10
    • String data = request.getParameter("data")
    • HTTP 요청 파라미터는 모두 문자로 처리된다. 
    • 다른 타입으로 사용하고 싶으면 변환하는 과정을 거쳐야 한다.
    • Integer intValue = Integer.valueOf(data)

 

2. @RequestParam


    @GetMapping("/hello-v2")
    public String helloV2(@RequestParam Integer data){
        System.out.println("data = " + data);
        return "ok";
    }
  • HTTP 쿼리 스트링으로 전달하는 data=10 부분에서 문자 10이다.
  • 스프링이 제공하는 @RequestParam는 문자 10을 Integer 타입의 숫자 10으로 변환해줌.
  • @ModelAttribute , @PathVariable도 동일하게 맞는 타입으로 변환해줌.

 

3. 스프링의 타입 변환 적용 예


  • 스프링 MVC 요청 파라미터
    • @RequestParam , @ModelAttribute , @PathVariable
  • @Value 등으로 YML 정보 읽기
  • XML에 넣은 스프링 빈 정보를 변환
  • 뷰를 렌더링 할 때

 

4. 스프링과 타입 변환, Converter Interface


package org.springframework.core.convert.converter;
public interface Converter<S, T> {
  T convert(S source);
}
  • 스프링은 확장 가능한 컨버터 인터페이스를 제공한다.
  • 모든 타입에 적용할 수 있다.
Comments