1. 데이터 보호하기
자바에서는 값을 바로 수정할 수 없게 하기 위해서(데이터를 보호하기 위해) 변수를 private으로 만든다.
객체지향에서는 변수를 private으로 만들고 메소드를 통해 변수 값이 변할 수 있게 만들어야 한다.
private int hungry = 50;
public void eat() {
hungryState+=10;
}
함수를 통해 값에 접근한다!! 변수의 상태는 메소드에 의해 변경된다.
2. source에서 getter와 setter + constructor(생성자) 만들기
private int id;
private String username;
private String passward;
private String email;
public Member(int id, String username, String passward, String email) {
//생성자
super();
this.id = id;
this.username = username;
this.passward = passward;
this.email = email;
}
//아래에는 getter, setter
@GetMapping("/http/get")
public String getTest(@RequestParam int id, @RequestParam String username){
return "get 요청"+id +","+username; //서버에서 해당 데이터를 받을 수 있다
}
@RequestParam으로 입력값을 파라미터로 받을 수 있다.
? 뒤에 있는 것은 쿼리스트링으로 데이터에 대한 정보를 전달한다.
스프링은 파라미터 입력값으로 객체를 넣을 수도 있다.
Member 클래스는 id, username, password, email를 가지고 있으며
@RequestParam int id, @RequestParam String username 이 아닌 Member 객체를 사용하여 한꺼번에 보내기
(Member 클래스에 있는 변수를 이용하는 것이다)
@GetMapping("/http/get")
public String getTest(Member m){
return "get 요청"+m.getId() +","+m.getUsername(); //서버에서 해당 데이터를 받을 수 있다
}
3. 다양한 방식으로 데이터 요청하기
get 방식으로 데이터를 요청할때는 ? 뒤에 데이터 정보를 입력하는 쿼리스트링을 쓰며,
post, put, delete 방식으로 데이터를 요청할 때는 주소창에 데이터를 보내는 것이 아닌 body에 보내게 된다.
포스트맨으로 데이터를 요청하였다.
Body -> x.www-form-urlemcoded는 가장 기본적인 post 요청으로 form 타입으로 데이터를 요청하는 것이다
데이터 타입에 맞는 데이터를 요청하려면? @RequestBody 어노테이션으로 타입을 정하고 포스트맨 body의 raw를 사용한다
//http://localhost:8080/http/post (insert)
@PostMapping("/http/post") //text/plain
public String postTest(@RequestBody String text){
return "post 요청: " +text;
}
json 데이터를 요청하려면? (*mime 타입 : application/json)
json 데이터는 key와 value로 이루어져 있으며
key는 항상 String 값이기 때문에 쌍따옴표가 필요하고, value는 int나 String 등 다양한 타입을 넣을 수 있다.
mime 타입이 json이 된다. 변환해주는 일은 스프링부트의 MesageConverter가 한다
body에 데이터를 실어 보내면 @RequestBody라는 어노테이션으로 매핑해서 오브젝트로 받을 수 있다.
본 강의는 '메타코딩'님의 동영상 강의를 참고하였습니다.
출처 : https://www.youtube.com/playlist?list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm
'JAVA > Spring' 카테고리의 다른 글
yml 파일 설정, jsp 파일 (0) | 2022.02.17 |
---|---|
Maven과 라이브러리/Builder 패턴/yaml 설정 (0) | 2022.02.17 |
http의 요청방법과 통신방식, header와 body (0) | 2022.02.17 |
프로젝트 만들기 (0) | 2022.02.17 |
[스프링] 패키지 이름, UTF-8 (0) | 2022.02.17 |