웹 개발의 세 가지 방법
1. 정적 컨텐츠
2. MVC와 템플릿 엔진
3. API 👈
정적 콘텐츠가 아니라면
HTML로 내리냐 API 방식으로 데이터를 바로 내리느냐 두 가지만 생각하면 된다!!
API
> 간단한 String API 구현해보기
1. HelloController에 코드 추가
@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
return "hello " + name; //"hello spring"
}
@ResponseBody : HTML의 응답 Body에 직접 데이터를 넣어주겠다
뷰 없이 문자가 그대로 내려간다
2. 실행
localhost:8080/hello-string?name=spring!!!!!!! 으로 접속
다른 게 없어보이지만 페이지 소스를 다음과 같이 들어가보면
아무것도 없이 "hello spring!!!!!!!"만 들어있는 것을 확인할 수 있다...!
> 객체를 리턴하는 API 만들어보기 ⭐
1. HelloController에 추가
@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
Hello hello = new Hello();
hello.setName(name);
return hello
}
static class Hello{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2. 실행 결과
JSON 형식으로 출력되는 것을 확인할 수 있다
(@ResponseBody 하면 기본적으로 JSON 방식이 선택된다)
💡 Getter / Setter
윈도우에서는 Alt + Insert > Getter and Setter > Ok
get, set이 생성된다 (getName, setName)
private 변수를 메서드를 통해 접근할 수 있다
-> 자바 빈 규약(표준 방식), 프로퍼티 접근 방식
@ResponseBody 사용 원리
'@ResponseBody' 를 사용
- HTTP의 BODY에 문자 내용을 직접 반환
- 'viewResolver' 대신에 'HttpMessageConverter'가 동작
- 기본 문자처리 : 'StringHttpMessageConverter'
- 기본 객체처리 : 'MappingJackson2HttpMessageConverter'
- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음
이 포스팅은 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 듣고 공부한 내용을 정리한 것입니다
'Web > Spring' 카테고리의 다른 글
[Spring] MVC 패턴이란? Model / View / Controller / 메인 메서드 반환타입 (1) | 2024.01.31 |
---|---|
[Spring] HttpServletRequest, HttpServletResponse 객체 (1) | 2024.01.31 |
[Spring] 웹 개발을 하는 세 가지 방법(2) : MVC와 템플릿 엔진 (0) | 2022.02.08 |
[Spring] 웹 개발을 하는 세 가지 방법(1) : 정적 콘텐츠 (0) | 2022.02.08 |
[Spring] 웹 개발을 하는 세 가지 방법 : 정적 컨텐츠, MVC와 템플릿 엔진, API (0) | 2022.02.08 |