우선, STS 창의 왼쪽 하단에 있는 Boot Dashboard에서 시작버튼을 눌러 서버를 시작해보자.
그런다음, 브라우저에서
http://localhost:8080/sbb 페이지를 요청해보자.
404 오류는 브라우저가 요청한 페이지를 찾을 수 없다는 의미이다.
스프링부트 서버가 http://localhost:8080/sbb라는 요청을 해석할 수 없기 때문에 이 오류가 발생했다.
이 오류를 해결하기 위해 컨트롤러를 작성하여 /sbb URL에 대한 매핑을 추가한다.
브라우저와 같은 클라이언트의 페이지 요청이 발생하면 스프링부트는 가장 먼저 컨트롤러에 등록된 URL 매핑을 찾고, 해당 URL 매핑을 발견하면 URL 매핑과 연결된 메서드를 실행한다.
//URL 매핑: URL과 컨트롤러의 메서드를 일대일로 연결. 컨트롤러의 메서드에 @GetMapping 또는 @PostMapping 과 같은 애너테이션을 적용하면 해당 URL과 메서드가 연결된다.
1. 컨트롤러를 작성하여 URL매핑을 추가하기 위해 다음과 같이 src/main/java 디렉터리의 com.mysite.sbb 패키지에 MainController.java 파일을 작성하자.
처음 MainController.java를 생성하면
package com.mysite.sbb;
public class MainController {
}
이러한 껍데기 코드만 생성이 되는데, 다음과 같은 코드를 넣어준다.
package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class MainController {
@GetMapping("/sbb")
public void index() {
System.out.println("index");
}
}
MainController 클래스에 @Controller 애너테이션을 적용하면 MainController 클래스는 스프링 부트의 컨트롤러가 된다.
그리고 index 메서드의 @GetMapping 애너테이션은 요청된 URL 과의 매핑을 담당한다.
그러면, /sbb URL 요청이 발생하면, 이것과 매핑되는 index 메서드를 Maincontroller 클래스에서 찾아 실행하는 것이다.
다시 http://localhost:8080/sbb 를 호출하자.
오류코드 500은 아무 값이 없어 발생하는 오류이다.
오류를 해결하려면 클라이언트(브라우저)로 응답을 리턴해야한다.
다음과 같이 MainController.java를 수정하자.
package com.mysite.sbb;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class MainController {
@GetMapping("/sbb")
@ResponseBody
public String index() {
return "index";
}
}
@ResponseBody 애너테이션을 추가하고, 리턴을 추가했다.
index라는 문자열을 브라우저에 출력하기 위해 index 메서드의 리턴 자료형을 String으로 변경하고 문자열 "index"를 리턴했다.
여기서 @ResponseBody 애너테이션은 URL 요청에 대한 응답으로 문자열을 리턴하라는 의미로 쓰였다.
다시 http://localhost:8080/sbb 를 호출하자.
이제, index 대신 다른 문자열을 출력해보자.
리포지터리로 데이터베이스 관리하기 (1) | 2025.01.28 |
---|---|
테이블 매핑하기 (0) | 2025.01.27 |
JPA 데이터베이스 사용하기 (1) | 2025.01.27 |
스프링부트(Spring Boot) 기본 기능 익히기 (0) | 2025.01.20 |
스프링부트(Spring Boot) 머리박기 (0) | 2025.01.18 |