!주의
Spring 게시판 만들기 포스트는 개발 기록을 남기는 것에 의의가 있습니다.
포스팅되는 내용대로 꼭 해야 한다는 법은 없습니다.
이 포스트는 이전 포스트에서 이어집니다.
이번 포스트에서는 프로그래밍을 한다면 무조건 한 번씩은 거쳐가는 HelloWorld를 만들어보겠습니다.
가장 먼저 HelloWorld를 출력하기 위한 HelloController.java를 만들어줍니다.
그럼 위와 같이 텅텅 빈 하나의 HelloController.java가 생성이 됩니다.
하단에 있는 코드를 적어 내용을 채워줍시다.
import lombok.Getter;
import lombok.Setter;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class HelloController {
/*
1. 화면에 helloworld가 출력됩니다.
*/
@GetMapping(value = "/helloworld/string")
@ResponseBody
public String helloworldString() {
return "helloworld";
}
/*
2. 화면에 {message:"helloworld"} 라고 출력됩니다.
*/
@GetMapping(value = "/helloworld/json")
@ResponseBody
public Hello helloworldJson() {
Hello hello = new Hello();
hello.message = "helloworld";
return hello;
}
@Setter
@Getter
public static class Hello {
private String message;
}
}
Controller는 Spring에서 클라이언트가 요청의 시작이 되는 곳이라고 생각하면 됩니다.
후에 다룰 내용이지만 Controller가 Service를 호출하고 Service가 DAO(Data Access Object)
즉 Mapper를 호출합니다.
코드 내용을 간단하게 살펴보겠습니다.
@Controller
Spring에 해당 클래스가 Controller라는 것을 알려주기 위해 class명 상단에 붙여서 사용합니다.
@GetMapping("RequestURL")
해당 주소의 Resource를 이용하기 위해서 Get method로 호출할 수 있게 하는 어노테이션입니다.
웹 브라우저에서 로컬 호스트 주소 뒤에 코드에 적어준 URL을 붙여서 실행하면 Get방식으로 호출이 됩니다.
위의 예시 코드에서 결과를 웹브라우저에서 확인을 하려면 아래의 주소를 실행하면 됩니다.
http://localhost:8080/helloworld/string
http://localhost:8080/helloworld/json
@ResponseBody
해당 어노테이션은 말 그대로 결과를 그대로 출력한다는 뜻입니다.
해당 코드를 작성한 후 서버를 실행한 후 위의 주소로 접속하면 아래와 같은 결과를 확인할 수 있습니다.
이번 포스트에서는 한 번씩은 거쳐가는 HelloWorld를 Controller를 이용해서 스프링 부트로 출력해보았습니다.
가장 기본이 되는 것인 만큼 꼭 한 번은 실습하시길 바랍니다.
'Dev > Project' 카테고리의 다른 글
[Spring&Angular] Spring 게시판 만들기 - Angular와 Swagger 연동 (0) | 2020.03.19 |
---|---|
[Spring&Angular] Spring 게시판 만들기 - WebStrom(웹스톰) Angular(앵귤러) 프로젝트 시작하기 (0) | 2020.03.19 |
[Spring&Angular] Spring 게시판 만들기 - CRUD 게시판 API (0) | 2020.03.19 |
[Spring&Angular] Spring 게시판 만들기 - Swagger (0) | 2020.03.19 |
[Spring&Angular] Spring 게시판 만들기 - IntelliJ(인텔리제이) Project 시작하기 (0) | 2020.03.11 |