IT/Spring Boot
[Spring Boot] 4. 프로젝트 구조, 컨트롤러 간단히 작성하고 URL 매핑
우웅지
2024. 4. 4. 16:29
728x90
반응형
SMALL
프로젝트 구조
* src/main/java : 자바 파일 저장하는 디렉토리.
* src/main/resources : 자바 파일을 제외한 HTML, CSS, JS, 환경파일 저장하는 디렉토리.
* templates : HTML 형식의 템플릿들을 저장.
* static : CSS, JS, 이미지 파일 저장.
* application.properties : 환경설정 파일.
* src/test/java : 테스트하는 코드를 저장하는 디렉토리.
* build.gradle : 플러그인과 라이브러리를 설치하기 위한 환경 파일.
간단한 웹 만들기
컨트롤러 만들고 URL 매핑
만약 아무 컨트롤러가 없는 상황에서 실행을 시키고 "localhost:8080/sbb"를 접속하면 404에러가 발생한다.
즉, 요청한 url을 찾을 수 없다는 의미이다.
당연함. 우리가 url 매핑을 해주지 않았기 때문에..
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("안녕");
}
}
이 MainController를 추가하고 index()를 추가해보자.
실행을 해보면 이전의 400에러와는 다르게 500에러가 발생한다.
이 오류는 index()메서드가 반환해야 하는데 아무것도 반환하지 않아 발생한 오류이다.
대신 console에는 프린트 할 값이 잘 출력되어 있다.
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()메서드가 String값 그대로 반환할 것이라고 알려주고, index()는 String값 "index"를 return한다.
어떠한 오류도 나지 않고 index 값도 정상적으로 출력된 것을 확인할 수 있다.
728x90
반응형
LIST