19 yaml 설정하기
by 볼빵빵오춘기yaml 이란?
- yaml 설정이란 스프링프로젝트를 설정한다는 의미다.
- 데이터베이스연결, 포트, 인코딩이라든지 전반적인 설정을 yaml에서 한다.
- 기존에는 xml에는 파일에다 설정을 했는데 이제는 yaml에다가 한다.
- 키값에 쌍따옴표가 없고 valuer값에는 키와 벨류사이에는 한 칸이 띄어쓰기 되어있어야한다.
- 하위 데이터를 표현하기 위해서는 json은 중괄호를 쓰지만 yaml 은 중괄호없이 밑으로 한 줄 내려서 스페이스바 두칸이다. (규칙이다.)
- 괄호라든지 따옴표가 없기때문에 가볍다.
- yml은 web.xml, root-context.xml(한 번만 new하는 애들관리), servlet-context.xml(계속 new해서 써야하는 애들) 의 합본이다.
강의에서는 yml로 변경하였지만 application.properties 그대로 진행하였다.
application.properties
#h2 console
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
#h2 db
spring.datasource.url=jdbc:h2:tcp://localhost/~/test
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
#hibernate
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.show_sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
#spring 경로 설정
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
server.servlet.session.cookie.sameSite=none
server.servlet.session.cookie.secure=true
cos.key=cos1234
views 폴더 생성
src > main 밑에 webapp 폴더 생성
→ src > main > webapp 밑에 WEB-INF 폴더 생성
→ src > main > webapp > WEB-INF > views 폴더 생성
TempControllerTest.class
src > main > com.cos.blog.test > TempControllerTest 클래스 생성
package com.cos.blog.test;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class TempControllerTest {
// spring 경로 설정을 하지않으면 (application.properties 에서 spring 경로 설정을 주석처리 한 후 돌려보면된다.)
// src > main > resources > static 밑에 home.html 파일을 찾아 리턴
@GetMapping("/temp/home")
public String tempHome(){
System.out.println("test");
return "/home.html";
}
// spring 경로 설정 후(application.properties 에서 spring 경로 설정을 한 후)
// src > main > webapp > WEB-INF > views > test.jsp 파일을 찾아 리턴
@GetMapping("/temp/tempJsp")
public String tempJsp(){
System.out.println("test");
return "/test";
}
}
home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>home</title>
</head>
<body>
home!!
</body>
</html>
test.jsp
<%@ page language="java" contentType="text/html;charset=UTF-8 " pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>home</title>
</head>
<body>
test
</body>
</html>
알 수 있었던 점
- application.properties 에서 #spring 경로 설정를 설정하였는데 설정하므로 tempHome()와 tempJsp()이 어떤 파일을 찾아 보여지는지 확인이 가능하다.
- 기존에 테스트 겸 클래스를 만들어서 @RestControlelr를 붙여서 테스트를 했는데 TempControllerTest 클래스에서 @Controller를 붙이므로서 @RestControlelr와 @Controlelr의 차이점을 알 수 있다.
- @RestController는 문자 그 자체를 return 하는 반면,
- @Controller는 해당 경로 이하에 있는 파일을 리턴 한다.
- static 폴더 밑에는 정적파일(html, image)만 넣는 경로이다.
브라우저가 인식할 수 있는 파일만 넣어야한다.
그럼 jsp도 찾을 수 있는거 아니야? 라고 생각할 수 있지만 jsp는 정적인 파일 java로 컴파일이 일어나야하는 파일이기 때문에 정적파일이 아니다.
'강의 따라하기 > blog' 카테고리의 다른 글
22. Board 테이블 생성 (1) | 2024.01.01 |
---|---|
20. User 테이블 생성 (0) | 2024.01.01 |
18 lombok 세팅 및 사용해보기 (0) | 2024.01.01 |
17 maven이란 (0) | 2024.01.01 |
15,16 http요청 실습 (0) | 2023.07.27 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기