yml 설정
server:
port: 8080
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: cos
password: cos1234
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
.jsp 경로를 설정한 이유는 스프링 부트는 기본적으로 jsp사용이 권장하기 않기 때문에 timeleaf 같은 다른 템플릿 엔진을 사용해야 한다. 하지만 jsp를 사용하기 위해서는 해당 구조로 폴더 구성을 한 뒤 세팅하여야 한다. (jasper)
datasource 의 mysql 드라이버에 cj가 들어간 이유는 mysql 6점대 이상 버전부터는 해당 드라이버를 사용하고 그 이전 드라이버는 cj가 없는 com.mysql.jdbc.Driver를 사용한다.
그 외 설명 추가 사이트 참고
https://getinthere.tistory.com/20
spring 기본경로


test를 하기 위해 먼저 yml의 spring 설정을 주석처리하였고 테스트용 컨트롤러 생성하여 연결시켜준다.

테스트로 사용할 home.html 파일로 생성.
http://localhost:8080/blog/temp/home
위 주소창에 넣고 사용하면 됩니다.

스프링부트는 이로써 @Controller 어노테이션은 파일을 리턴한다는 사실을 알아낼 수 있습니다.
jsp 파일 열기



404 에러가 뜹니다. 파일을 찾을 수 없는거죠.
이게 왜 이럴까요?
파일을 찾을 수 없는 이유는 jsp파일은 정적인 파일이 아닙니다. 컴파일이 반드시 일어나야 파일을 읽어낼 수 있기때문에 스프링에서 파일을 가져오는 것만으로 읽어낼 수 없는 겁니다.
이를 해결하기 위해서는 컴파일을 일으켜주는 구조로 만들어주는겁니다!

src/main/webapp/WEB-INF/views/temp.jsp 로 위치를 조정시켜줍니다.
폴더를 생성하든, 파일을 새로 만들어주든
yml 파일에 만든 설정에 따르는겁니다.

주석처리한걸 다시 리셋을 시켜주고 위에 따르면

풀경로는
/WEB-INF/views/ /temp.jsp.jsp
로 될겁니다 이 상태로 리턴을 시켜주면 오류가 날겁니다 따라서, return "temp"로 수정해야합니다!


성공적으로 jsp를 출력시킬 수 있었습니다!
이로써 스프링 폴더에
src/main/resources/static 폴더는
정적인 파일을 두는 공간입니다.
인터넷 브라우저가 스스로 열 수 있는 파일을 두는 겁니다.
동적인 파일은 다른곳에 두는것이 맞고요
동적인 파일의 예는 jsp, thyleaf가 있습니다