우선 시작 전에, 혹시 sts4에서 jsp나 html 파일을 생성할 수 없는 경우
플러그인을 설치해주어야 한다.
마켓에서 이 플러그인을 설치하면 된다.
이제 yml에 대해 알아보자
내가 기존에 만들던 스프링 레거시 게시판에서는
web.xml, root-context.xml, servlet-context.xml 파일들이 있었다.
하지만 스프링 부트에선 이 세 파일들의 합본으로 application.yml을 사용한다.
application.yml
server:
port: 9090
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
코드 :
server:
port: 9090
servlet:
context-path: /blog
encoding:
charset: UTF-8
enabled: true
force: true
설명 :
context-path라는 것은 내 프로젝트에 들어가기 위한 진입점이다.
미설정시 context-path: /
설정 이전에 주소 예시 http://localhost:9090/http/lombok
설정 이후 http://localhost:9090/blog/http/lombok
코드 :
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
설명 :
이해를 위해 우선 TempControllerTest.java를 작성한다.
실행시키면
찾을 수 없다는 오류가 발생한다. home.html.jsp ??
이건 지금 application.yml 파일에 작성되어 있는
spring:
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
이 코드 때문이다.
이 코드를 드래그해 다음과 같이 주석처리를 해주고,
이제 다시 실행해보면
해당 오류가 발생한다.
왜냐하면 @Controller는 해당 경로 이하에 있는 파일을 리턴하는데
지금 코드로는 이와 같이 src/main/resources/statichome.html과 같이 리턴하기 때문이다.
따라서 리턴명에 다음과 같이 반드시 슬래시(/)를 붙여줘야 한다.
이제 실행해보면
제대로 실행되는 것을 확인할 수 있다.
이와 같이 @RestController 가 문자 그 자체를 리턴했다면
@Controller 는 해당 경로 이하에 있는 파일을 리턴해준다.
이제는 html이 아니라 jsp를 리턴해보겠다.
그런데 스프링 부트는 기본적으로 jsp 지원을 하지 않는다.
jsp 파일을 리턴해도 스프링 부트가 정상적으로 동작하지 않는다.
부트에서 jsp파일 인식
그래서 첫 번째로 필요한 것이 pom.xml에서 JSP 템플릿 엔진의 의존성 설정을 해주는 것이다.
그래야 jsp가 부트에서 동작할 수 있다.
그리고 src/main/webapp/WEB-INF/views 디렉토리를 생성해서 jsp파일을 둔다.
jsp파일은 정적 파일이 아니므로 웹서버인 아파치가 처리하지 못한다.
톰캣이 대신 컴파일해서 웹브라우저에게 전달한다.
application.yml 주석처리 했던 코드들의 주석을 다시 해제한다.
prefix와 suffix는 이렇게 앞 뒤로 붙게된다.
이제 jsp파일을 리턴해보면
스프링 부트에서 jsp파일이 제대로 리턴되는 것을 확인할 수 있다.
참고자료 : https://youtu.be/U9OnYKiSf4g
'자바 스프링 > 부트 블로그 JPA 프로젝트' 카테고리의 다른 글
#10 연관관계에 대한 이해 (0) | 2022.05.05 |
---|---|
#9 JPA와 DB테이블 생성(User, Board, Reply) (0) | 2022.05.05 |
#7 lombok 설치와 사용 (0) | 2022.05.04 |
#6 http요청 개념 및 실습 (0) | 2022.05.02 |
#5 Git 연동하기 (0) | 2022.05.02 |