@GetMapping("/addPerson")
@ResponseBody
public Person addPerson(int id, int age, String name) {
Person p = new Person(id,age,name);
return p;
}
}
@Getter
class Person {
private int id;
private int age;
private String name;
// public int getId () {
// return id;
// }
// public int getAge () {
// return age;
// }
// public String getName () {
// return name;
// }
// 위에서 주석처리를 한 것이 lombok 라이브러리가 없었을 때 Get을 직접 해줘야하는 코드이다.
// lombok 라이브러리는 위의 get 코드를 전부 직접 해주는 역할을 한다고 보면 된다.
public Person(int id, int age, String name) {
this.id = id;
this.age = age;
this.name = name;
}
}
위의 코드는 사람이라는 클래스를 통해서 사람을 하나 만든 모습이다.
저기에서 Getter의 역할은 코드를 줄여주는 역할인데 스프링의 lombok이라는게 저 Getter를 하기 위해
필요한 코드를 줄여줘서 Getter 하나만 쓰면 사용이 가능하다.
위의 코드에 get 코드를 직접 만들어줘야하는 수고를 lombok 라이브러리가 알아서 해주는 고마운 친구이다.
@Getter
@AllArgsConstructor
class Person {
private int id;
private int age;
private String name;
}
여기에선 AllArgsConstructor 라는 코드 하나로 public Person에 들어가는 모든 코드를 없앴다.
이런식으로 해서 라이브러리를 활용하면 코드의 길이를 확실하게 줄일 수 있다.
위와 같이 코드를 짠 후 주소창에 id와 age, name 을 입력해주면 된다 그러면 정상적으로
실행이 되는 모습을 볼 수 있다.
@GetMapping("/addPerson")
@ResponseBody
public Person addPerson(Person person) {
return person;
}
}
@Getter
@AllArgsConstructor
class Person {
private int id;
private int age;
private String name;
}
그리고 위의 코드에서 똑같이 id,age,name 을 불러오는 다른 방법 중 하나인데
꼭 addPerson(int id, int age, String name) 을 하지 않고 addPerson(Person person) 만으로도
그리고 return person; 만 하는 것으로도 id,age,name 을 불러올 수 있다.
이건 스프링부트가 사용자 편의를 위해 만들어놓은 기능이다.
@GetMapping("/addPerson/{id}")
@ResponseBody
public Person addPerson(Person person, @PathVariable("id") int id) {
return person;
}
}
위의 코드는 보통 id와 age,name 의 값을 주소창에 직접 입력한다, 예를 들어서
localhost:포트번호/addPerson?id=1&age=20&name=tom 이런식으로 주소창에 입력해서 들어가야
id에는 1의 값이 age에는 20의 값이 name 에는 "tom" 이라는 값이 들어가는데
이거를 localhost:포트번호/addPerson/1?age=20&name=tom 으로 해서 들어갈 수 있게 해준다
즉, id 값을 주소창에 id 라고 입력을 하지 않아도 GetMapping 때 addPerson/{id} 가 있기 때문에
id 의 값을 입력 받을 수 있으며 PathVariable 이라는 것을 통해서 받을 수 있다.
근데 사실 여기에서 PathVariable 이라는 것을 안써도 addPerson/{id} 만 해줘도 스프링부트가 편의성을 위해서
만들어놓은 시스템으로 인해 id 값을 받을 수 있게 해준다.
'Spring' 카테고리의 다른 글
| 2022-09-28 스프링 (서비스) (0) | 2022.09.28 |
|---|---|
| 2022-09-27 스프링(질문 목록 및 템플릿 / Root URL) (0) | 2022.09.27 |
| 2022-09-26 스프링 (리포지터리) 데이터 조회,수정,삭제 및 답변 생성 및 저장, 조회 (1) | 2022.09.26 |
| 2022-09-21 스프링(Spring) - 세션 사용 (저장과 가져오기) (1) | 2022.09.21 |
| 2022-09-20 스프링(Spring) (0) | 2022.09.21 |
댓글