@GetMapping("hello-string") //메서드에 따라 어떤 page를 보여줄지 결정한다.
@ResponseBody //ResponseBody 문자 반환
public String helloString(@RequestParam("name") String name){ //name이라는 데이터를 가져와서 name이라는 변수에 저장한다.
return "hello"+name; //hello+name의 값을 반환한다.
}
비동기처리 방식에는 repsonsebody, requestbody가 존재합니다.
@ResponseBody는 http 요청 body를 자바 객체로 전달할 수 있씁니다.
@ResponseBody를 사용하면 viewResolver를 사용하지 않습니다.
대신에 HTTP의 BODY에 문자 내용을 직접 반환합니다.
@GetMapping("hello-api") //메서드에 따라 어떤 page를 보여줄지 결정합니다.
@ResponseBody //ResponseBody 객체 반환
public Hello helloApi(@RequestParam("name") String name){ //name이라는 데이터를 가져와서 name이라는 변수에 저장한다.
Hello hello = new Hello(); //hello라는 새로운 변수를 생성합니다.
hello.setName(name); //hello라는 변수에 setName(name) 값을 저장합니다.
return hello; //hello를 반환합니다.
}
static class Hello{ //중첩 클래스 Hello를 생성한다,
private String name; //name이라는 문자열 변수를 생성한다.
public String getName() { //return값이 string이기 때문에 string get을 사용한다.
return name; //name이라는 변수를 반환한다.
}
public void setName(String name){ //return하는 값이 없기에 void를 사용하여 set을 사용한다.
this.name = name; //this.멤버변수를 이용하여 name에 name 변수 값을 할당한다.
}
}
중첩클래스: 다른 클래스 안에 정의된 클래스
private: 외부에서 접근하지 못하며, 같은 클래스 내에서만 접근이 가능하다.
GET: 변수값을 반환하는 목적이기 때문에 return이 필요하다.
SET: 변수값을 할당하는 목적의 함수이다.
this.멤버변수: 매개변수와 객체자신이 가지고 있는 변수의 이름이 같은 경우 이를 구분하기 위해 this를 붙인다.
@ResponseBody를 사용하고, 객체를 반환하면 객체가 JSON으로 변환된다.
@ResponseBody를 사용