Hello

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

볼빵빵오춘기

활동하기