@RestController

Restful Web API를 좀 더 쉽게 만들기 위해 스프링 프레임워크에서 4.0에 추가된 기능

@Controller + @ResponseBody

 

@Controller       : 해당 클래스 요청을 처리하는 컨트롤러

@ResponseBody : 자바 객체를 HTTP 응답 본문의 객체로 변환해 클라이언트에게 전송

 

설정 파일 properties로 해두는 편이 많음 또는 xml

package com.example;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

@Getter
@Setter
@ToString
public class UserDto {

    private String name;
    private Integer age;
}
package com.example;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {

    @GetMapping(value = "/test")
    public UserDto test(){

        UserDto userDto = new UserDto();
        userDto.setAge(20);
        userDto.setName("리키김");

        return userDto;
    }
}

Dto하고 Controller 만들어서 동작하는지 확인

localhost:8080/test 로 확인해본다.


플러그인에서 에러가 나면 아래에 버전을 명시해주면 풀린다.


springdemo라는 폴더안에 넣어놔서 매핑이 안됐음...


target/classes 폴더에 java 파일이 컴파일된 class를 볼 수 있음

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.example;

public class UserDto {
    private String name;
    private Integer age;

    public UserDto() {
    }

    public String getName() {
        return this.name;
    }

    public Integer getAge() {
        return this.age;
    }

    public void setName(final String name) {
        this.name = name;
    }

    public void setAge(final Integer age) {
        this.age = age;
    }

    public String toString() {
        String var10000 = this.getName();
        return "UserDto(name=" + var10000 + ", age=" + this.getAge() + ")";
    }
}

롬북 풀려서 볼 수 있음

 


target 왜 있음?

Maven 으로 빌드하면 생기는 jar 파일을 저장하는 것이 주용도입니다.

개발할 때는 이클립스 안에서 모든 것이 이루어지기 때문에 별로 중요성이 없지만

나중에 프로젝트 결과물인 jar 또는 war 를 실서버에 반영할 때는 target 밑에 있는 jar 나 war 를 배포하게 되는 것이죠.

 

실제로 배포되는 파일은 target에 있는 파일!

+ Recent posts