스프링 부트 컨트롤러
스프링 부트 프로젝트의 기본 컨트롤러 코드이다. 해당 코드의 목적은 url에 각 컨트롤러가 매핑되는 것을 확인하고, 리턴되는 값이 어떤 방식으로 보여지는지 확인하는 것이다.
설정은 아래 포스팅 내용을 따라간다.
https://doompa.tistory.com/390
@RestController
public class HelloController {
@GetMapping("/")
public String hello() {
System.out.println("HelloController -----");
return "안녕하세요";
}
@GetMapping("/test")
public int test() {
System.out.println("HelloController -----" + new Date());
return 12;
}
@GetMapping("/human")
public HumanDto human() {
System.out.println("HelloController human() -----" + new Date());
HumanDto human = new HumanDto(1, "길동", "여기");
return human;
}
}
위 코드에서 RestController를 사용하면 Controller + ResponseBody의 의미를 모두 가진다.
이때 기본 자료형은 기본 자료형으로 넘어가고, Object는 Json형식으로 반환된다.
위 코드에서 /human 경로로 접속하게 되면 human이 json형식으로 반환되는 것을 확인할 수 있다.
/human url에서 반환되는 값
{
"number":1,
"name":"sada",
"address":"dasdas"
}
해당 컨트롤러에서 사용하는 Dto 클래스는 아래의 형태이다.
public class HumanDto {
private int number;
private String name;
private String address;
public HumanDto(int number, String name, String address) {
super();
this.number = number;
this.name = name;
this.address = address;
}
}
쿼리 파라미터 받기
아래의 형태로 쿼리 파라미터를 받을 수 있다.
@GetMapping("conn_param")
public String conn_param(int num, String str) {
System.out.println("HelloController conn_param() -----" + new Date());
System.out.println("num : " + num + " str : " + str);
return "success";
}
브라우저 url <<http://localhost:3100/conn_param?num=12&str="고고고">>
HelloController conn_param() -----Wed Aug 02 11:33:53 KST 2023
num : 12 str : "고고고"
url의 쿼리 파라미터를 컨트롤러 메서드의 파라미터로 들어오는 것을 확인할 수 있다.
쿼리 파라미터 dto객체로 바인딩하여 받기
@GetMapping("param_obj")
public String param_obj(HumanDto h) {
System.out.println("HelloController param_obj() -----" + new Date());
System.out.println(h.toString());
return "success";
}
브라우저 url <<http://localhost:3100/param_obj?number=123&name="이름"&address="여기">>
HelloController param_obj() -----Wed Aug 02 11:40:35 KST 2023
HumanDto [number=123, name="이름", address="여기"]
리스트 객체 넘기기
@GetMapping("getlist")
public List<HumanDto> getlist(){
List<HumanDto> list = new ArrayList<HumanDto>();
list.add(new HumanDto(1, "이름1", "부산"));
list.add(new HumanDto(2, "이름2", "서울"));
list.add(new HumanDto(3, "이름3", "전주"));
return list;
}
위 리스트 객체는 아래의 json 형식으로 출력된다.
[
{
"number": 1,
"name": "이름1",
"address": "부산"
},
{
"number": 2,
"name": "이름2",
"address": "서울"
},
{
"number": 3,
"name": "이름3",
"address": "전주"
}
]
맵 객체 넘기기
- 맵은 키:값의 쌍을 가지는 객체이다. 키에 String 값에 List를 가지는 맵 객체는 아래의 제이손 형식으로 반환된다.
@GetMapping("getMap")
public Map<String, List<HumanDto>> getMap(){
Map<String, List<HumanDto>> map = new HashMap<String, List<HumanDto>>();
List<HumanDto> list1 = new ArrayList<HumanDto>();
list1.add(new HumanDto(1, "이름1", "부산"));
list1.add(new HumanDto(2, "이름2", "서울"));
list1.add(new HumanDto(3, "이름3", "전주"));
List<HumanDto> list2 = new ArrayList<HumanDto>();
list2.add(new HumanDto(1, "이름1", "부산"));
list2.add(new HumanDto(2, "이름2", "서울"));
list2.add(new HumanDto(3, "이름3", "전주"));
map.put("리스트 1번", list1);
map.put("리스트 2번", list2);
return map;
}
{
"리스트 2번": [
{
"number": 1,
"name": "이름1",
"address": "부산"
},
{
"number": 2,
"name": "이름2",
"address": "서울"
},
{
"number": 3,
"name": "이름3",
"address": "전주"
}
],
"리스트 1번": [
{
"number": 1,
"name": "이름1",
"address": "부산"
},
{
"number": 2,
"name": "이름2",
"address": "서울"
},
{
"number": 3,
"name": "이름3",
"address": "전주"
}
]
}
즉, 제이손 객체 내에 우선 맵 객체의 각 키값으로 객체가 들어가고, 그 내부에 list가 배열 형태로 들어가는 것을 확인할 수 있다.
'컴퓨터 > Spring' 카테고리의 다른 글
[Spring Boot] 스프링 부트 파일 업로드 다운로드 예제 코드 (깃허브 포함) (0) | 2023.08.02 |
---|---|
[Spring Boot] 스프링 부트 비동기 통신/백-프론트 통신 (0) | 2023.08.02 |
[Spring Boot] 스프링 부트 시작하기 (0) | 2023.08.02 |
[Spring] 컨트롤러 사이 이동 (0) | 2023.07.17 |
[Spring] 스프링의 어노테이션/어노테이션 정리 (0) | 2023.07.17 |
댓글