1. Yaml 이란 ?
yaml파일 이란 무엇인가요 - 인프런 | 질문 & 답변
안녕하세요 강사님너무 질문이 많아서 죄송합니다.yaml파일 이라는 단어를 요 근래 많이 듣고 있는데 정확인 무슨 파일인가요검색해 보지도 않고 무조건 질문을 드리는것 같아서 죄송하지만 쉽
www.inflearn.com
2. yml 설정
application.yml = web.xml + root-context.xml + servlet-context.xml
application.yml 에 코드 추가
server:
port: 8001
servlet:
context-path: /blog
encoding:
charset: UTF-8
enabled: true
force: true
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/blog?serverTimezone=Asia/Seoul
username: lwj
password: 1213
jpa:
open-in-view: true
hibernate:
ddl-auto: create
naming:
physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
use-new-id-generator-mappings: false
show-sql: true
properties:
hibernate.format_sql: true
jackson:
serialization:
fail-on-empty-beans: false
server:
port: 8001 => 포트번호 설정 default 8080
context-path: /blog => 프로젝트의 기본경로 설정 default "/"
port와 context-path를 설정하지 않는다면 경로는
http://localhost:8080/~~
위 처럼 port와 context-path를 설정시
http://localhost:8001/blog/~~
spring: mvc:
먼저 스프링부트의 동작원리를 알아야한다!
@Controller
public class TempControllerTest {
// http://localhost:8001/blog/temp/home
@GetMapping("/temp/home")
public String tempHome() {
System.out.println("tempHome()");
// 파일리턴 기본경로 : src/main/resources/static
return "/home.html"; // src/main/resources/static/home.html 잘 접근한다.
}
}
스프링부트는 기본적으로 파일리턴을 할때 src/main/resources/static 안에 있는 파일을 찾게 된다.
그럼 jsp 파일은 어떻게 찾을까 ?
// http://localhost:8001/blog/temp/test
@GetMapping("/temp/test")
public String tempTest() {
System.out.println("temptest()");
return "/test.jsp";
}
1. 먼저 pom.xml에 jsp 템플릿 엔진을 의존성 추가해야된다.
<!-- JSP 템플릿 엔진 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
2. jsp 파일을 만든다. 똑같이 src/main/resources/static/home.jsp 를 만들면 되는게 아닌가 ? NO
--> 왜 ? static은 spring이 정적 파일을 넣는 경로이다. 따라서 정적 파일인 html, image 는 가능하지만,
jsp는 동적파일이다. 즉, 읽을 수 없다 !!!
--> 그럼 어디에 ?
--> 근데 경로가 여전히 src/main/resources/static/home.jsp 잖아.. 이러면 이 파일의 경로가 WEB-INF/views 인데 ?
--> 그럼 이 jsp파일은 어떻게 찾아 ? 그래서 application.yml의 spring: mvc: 에서 prefix와 suffix를 설정한거다!
// http://localhost:8001/blog/temp/test
@GetMapping("/temp/test")
public String tempTest() {
// prefix : /WEB-INF/views/
// suffix : .jsp
// 즉 /WEB-INF/views/파일명.jsp 를 찾게 된다.
System.out.println("temptest()");
//return "/test.jsp"; => /WEB-INF/views//test.jsp.jsp
// 위 코드는 "/"가 두 번 들어가고 확장자명도 두번 들어간다.
// 즉 아래와 같이 바꿔준다.
return "test";
}
datasource:, jpa:, jackson:, http: 는 다음에 알아보자..