유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
이번엔 application.yml을 설정하도록 하겠다.
src/main/resources 에 application.yml를 생성해주자.
yml과 propertices 에 대한 차이는 연로그님 블로그 https://yeonyeon.tistory.com/245 에서 자세하게 알 수 있다고 판단된다.
간단하게 말하자면 표현하는 형식이 다르고 속도면에서도 차이가 난다고 알고 있다.
server:
port: 8085
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: root
password: 1234
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
포트번호를 바꾸고 싶다면 port에서 숫자를 바꾸면 되고 context-path로 우리가 localhost에 접속할 때 방법이 약간 바뀌게 된다.
기존 주소대로 http://localhost:8085/로 들어갔더니 404 에러가 뜨게 된다.
여기서 context-path에 추가한대로 http://localhost:8085/blog 를 추가해줘야 접속할 수 있다.
도메인에 /blog를 추가해줘야 접속이 가능한 모습이다.
prefix와 suffix에 각각 /WEB-INF/views/ 과 .jsp가 있다. 이건 무엇을 의미하는 것일까?
동적인 파일인 jsp를 spring boot에서는 jsp을 인식해주기위해서 경로를 수정하기 위해 작성한내용이다.
또한 jsp를 지원하지 않기 때문에 pom.xml에 의존성을 추가해야한다.
현재 프로젝트에서는 빌드관리도구로 Maven을 사용하기 있기 때문에 dependencies 사이에 해당 dependency를 추가해주면 된다.
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
테스트를 하기 위해 src/main/webapp/WEB-INF/views/ 라는 폴더들도 순서대로 만들고, test.jsp 라는 파일을 생성한다.
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
</head>
<body>
jsp 파일 test
</body>
</html>
테스트를 위해 아래와같이 컨트롤러를 생성한 후
package com.toyproject.projectblog.test;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
@Slf4j
public class TempControllerTest {
@GetMapping("/jsp")
public String tempJsp() {
log.info("jsp");
return "test";
}
}
재실행 하고 http://localhost:설정한 포트번호/설정한 Context-path/설정한 Getmapping 에 접속해보면
나같은 경우에는 http://localhost:8085/blog/jsp
그렇다면 prefix와 suffix를 설정하지 않는다면 어떻게 될까?
application.yml에서 prefix와 suffix를 삭제하고 실행해보면
아래와 같은 페이지를 볼 수 있을 것이다.
댓글