Mapping

 

 

스프링 MVC 컨트롤 메서드를 선언하기 위한 어노테이션 몇 가지를 소개하겠다.

@RestController 어노테이션을 통해 컨트롤러를 활성화할 수 있다.

Json 형태로 키와 밸류값으로 이루어진 데이터를 받아서 반환해준다.

과거 @Controller를 사용할 때는 메서드마다 @ResponsBody를 선언해야 하는 불편함이 있었다.

 

1. GetMapping

    //    @RequestMapping(value = "/login/{loginID}", method = RequestMethod.GET)
    // 각 매핑들은 RequestMapping을 사용해서 value, method값을 통해 데이터를 받을 수도 있다.
    
    
    @GetMapping("/login/{loginID}")
    public String getTest(@PathVariable("loginID") String id){
        return "아이디 : " + loginID + " 로그인 성공";
    } // 아이디 : test 로그인 성공

URL : http://localhost:8080/login/test

 

 

    @GetMapping("/login")
    public String getTest2(
            @RequestParam(value = "loginID", required = false, defaultValue = "defaultId") String id,
            @RequestParam("type") String memberType){
        log.info("아이디 : " + id + ", 회원타입 : " + memberType);
        return "아이디 : " + id + ", 회원타입 : " + memberType;
    } // 아이디 : test, 회원타입 : member

URL : http://localhost:8080/order?loginID=test&type=member

* required : 필수 여부 / true가 디폴트값

 

2. DeleteMapping

    @DeleteMapping("/login/{loginID}")
    public String Test3(@PathVariable("loginID") String id){
        return "Delete ID : " + id;
    } // Delete ID : test

URL : http://localhost:8080/login/test

 

 

3. PutMapping

    @PutMapping("/login")
    public String test4(){
        return "id created -> ID:test, memberType:member";
    }

 

 

3. PostMaping / 여러 개의 파라미터 값을 받아오기

    public String Test5(
            @RequestBody CreateOrderRequest createOrderRequest,
            @RequestHeader String memberType){
        return "아이디 : " + createOrderRequest.getloginID()
        + ", 주문량 : " + createOrderRequest.getOrderAmount()
        + ", 타입 : " + memberType;
    } // 아이디 : test, 주문량 : 1000, 타입 : 멤버
    
    @Data // lombok 라이브러리가 가진 기능. getter, setter가 자동으로 생성돼있음
    public static class CreateOrderRequest{
        private String loginID;
        private Integer orderAmount;
    }

URL : http://localhost:8080/order

Json데이터 : {"loginID" :  "test", "orderAmount" :  8500}

String memberType: "멤버"

복사했습니다!