프레임워크/Spring, Spring Boot

[메타코딩] 스프링부트 강좌 17강(블로그 프로젝트) - yml설정하기

고용인 2022. 7. 26. 15:29

1. yaml이란?

    - 정리가 잘 된 주소 참조합니다.

https://www.inflearn.com/questions/16184

 

yaml파일 이란 무엇인가요 - 인프런 | 질문 & 답변

안녕하세요 강사님 너무 질문이 많아서 죄송합니다. yaml파일 이라는 단어를 요 근래 많이 듣고 있는데 정확인 무슨 파일인가요 검색해 보지도 않고 무조건 질문을 드리는것 같아서 죄송하지만

www.inflearn.com

 

server:
  port: 8000
  servlet:
    context-path: /blog

port는 8000이며, context-paht는 /blog입니다.

 

RestController 어노테이션은 문자 그대로를 return하는 반면,

Controller 어노테이션을 이용하게되면, file을 return하게 됩니다.

@Controller
public class TempControllerTest {

	// http://localhost:8000/blog/temp/home
	@GetMapping("/temp/home")
	public String tempHome() {
		System.out.println("tempHome()");
		// 파일리턴 기본경로 : src/main/resources/static
		// 리턴명 : /home.html
		// 풀경로 : src/main/resources/static/home.html
		return "/home.html";
	}
}

스프링 부트의 경우는 JSP파일을 인식하지 못합니다.

그래서, JSP 템플릿 엔진을 pom.xml에 추가해줘야합니다.

<!-- JSP 템플릿 엔진 -->
<dependency>
	<groupId>org.apache.tomcat.embed</groupId>
	<artifactId>tomcat-embed-jasper</artifactId>
</dependency>

또한 JSP파일은 정적 파일이 아니기 때문에, 위의 파일 리턴 기본 경로인 static 하위에 위치하여도 JSP파일은 읽히지 않습니다. 이유는 static하위에는 브라우저가 인식 할 수 있는 정적 파일만 있어야합니다.

	@GetMapping("/temp/jsp")
	public String tempJsp() {
		return "/test.jsp";
	}

이를 위해, src/main/webapp/WEB-INF/views라는 폴더를 생성하고,

application.yml에 아래와 같이 추가합니다.

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp

또한 해당 jsp를 호출할때 메소드에서의 호출 방법은 아래와 같습니다.

	@GetMapping("/temp/jsp")
	public String tempJsp() {
		// prefix : /WEB-INF/views/
		// suffix : .jsp
		// 풀네임 : /WEB-INF/views/test.jsp
		
		return "test";
	}

 

static 하위의 파일에 접근하던것과 다르게 prefix, suffix가 존재하여 return시에 return하고자하는 파일명만 집어 넣으면 됩니다.

 

 

 

강의 주소 : https://youtu.be/U9OnYKiSf4g