ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스프링(Spring) @어노테이션 - 작성중!!
    Spring(스프링) 2015. 5. 10. 22:00

    @RequestMapping

    @RequestMapping은 요청에 대해 어떤 Controller, 어떤 메소드가 처리할지를 맵핑하기 위한 어노테이션이다. @RequestMapping이 사용하는 속성은 아래와 같다.

    이름 타입 설명
    value String[] URL 값으로 맵핑 조건을 부여한다.
    @RequestMapping(value=”/hello.do”) 또는 @RequestMapping(value={”/hello.do”, ”/world.do” })와 같이 표기하며,
    기본값이기 때문에 @RequestMapping(”/hello.do”)으로 표기할 수도 있다.
    ”/myPath/*.do”와 같이 Ant-Style의 패턴매칭을 이용할 수도 있다.
    Spring 3.1부터 URL뒤에 중괄호를 이용하여 변수값을 직접 받을 수 있도록 하였다. 아래 설명(URI Template Variable Enhancements)을 참고하라
    method RequestMethod[] HTTP Request 메소드값을 맵핑 조건으로 부여한다.
    HTTP 요청 메소드값이 일치해야 맵핑이 이루어 지게 한다.
    @RequestMapping(method = RequestMethod.POST)같은 형식으로 표기한다.
    사용 가능한 메소드는 GET, POST, HEAD, OPTIONS, PUT, DELETE, TRACE이다
    params String[] HTTP Request 파라미터를 맵핑 조건으로 부여한다.
    params=“myParam=myValue”이면 HTTP Request URL중에 myParam이라는 파라미터가 있어야 하고 값은 myValue이어야 맵핑한다.
    params=“myParam”와 같이 파라미터 이름만으로 조건을 부여할 수도 있고, ”!myParam”하면 myParam이라는 파라미터가 없는 요청 만을 맵핑한다.
    @RequestMapping(params={“myParam1=myValue”, “myParam2”, ”!myParam3”})와 같이 조건을 주었다면,
    HTTP Request에는 파라미터 myParam1이 myValue값을 가지고 있고, myParam2 파라미터가 있어야 하고, myParam3라는 파라미터는 없어야 한다.
    consumes String[] 설정과 Content-Type request헤더가 일치 할 경우에만 URL이 호출된다.
    produces String[] 설정과 Accept request헤더가 일치 할 경우에만 URL이 호출된다.

     

     

     

     

    @Valid에는 기본적으로 14개의 검증 어노테이션을 제공한다.

    @AssertFalse : false 값만 통과 가능
    @AssertTrue : true 값만 통과 가능
    @DecimalMax(value=) : 지정된 값 이하의 실수만 통과 가능
    @DecimalMin(value=) : 지정된 값 이상의 실수만 통과 가능
    @Digits(integer=,fraction=) : 대상 수가 지정된 정수와 소수 자리수보다 적을 경우 통과 가능
    @Future : 대상 날짜가 현재보다 미래일 경우만 통과 가능
    @Past : 대상 날짜가 현재보다 과거일 경우만 통과 가능
    @Max(value) : 지정된 값보다 아래일 경우만 통과 가능
    @Min(value) : 지정된 값보다 이상일 경우만 통과 가능
    @NotNull : null 값이 아닐 경우만 통과 가능
    @Null : null일 겨우만 통과 가능
    @Pattern(regex=, flag=) : 해당 정규식을 만족할 경우만 통과 가능
    @Size(min=, max=) : 문자열 또는 배열이 지정된 값 사이일 경우 통과 가능
    @Valid : 대상 객체의 확인 조건을 만족할 경우 통과 가능

     


     

    @ModelAttribute

     

    @ModelAttribute는 다른 말로 커맨드 오브젝트라고도 불리는데 그 이유는 클라이언트가 전달하는 파라미터를 1:1로 전담 프로퍼티에 담아내는 방식이 커맨드 패턴 그 자체이기 때문이다. 위의 이미지와 같이 @ModelAttribute는 클라이언트의 파라미터를 완벽하게 이해하고 있는 자바빈 객체를 요구하며 이 객체에 @ModelAttribute란 어노테이션를 붙이면 자동으로 바인딩해주고 중간 과정은 모두 자동으로 생략 해준다. 
Designed by Tistory.