본문 바로가기

JAVA/Spring

yml 파일 설정, jsp 파일

스프링에서 설정을 바꿀땐 application.yml의 설정을 건들면 된다. application.yml 파일에 모든 설정들을 하면 되고 규칙은 yaml파일의 규칙을 따른다.

스프링은 프로젝트에 진입하기 직전 application.yml 파일을 읽고 시작하게 된다.

 

다음과 같이 yml 파일을 설정하였다.

server:
  port: 8000
  servlet:
    context-path: /blog
    encodinsmg:
      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

 

1. 포트 안의 컨텍스트 설정, @Controller

컨텍스트 설정은 주소창에 입력하는 포트와 주소를 관리한다.

server:
  port: 8000
  servlet:
    context-path: /blog
    encodinsmg:
      charset: UTF-8
      enabled: true
      force: true

port를 8000번으로 설정했으며, context-path를 /blog로 설정했기 때문에

해당 포트는 http://localhost:8000/http/blog/... 주소에서 작동한다(포트 8000, context-path /blog)

 

@Controller //파일을 리턴함
public class TempControllerTest {
	
	//http://localhost:8000/blog/temp/home
	@GetMapping("/temp/home")
	public String tempHome() {
		System.out.println("tempHome()");
		//파일리턴 기본경로 : src/main/resources/static
		//리턴명 : /home.html
		//풀네임 : src/main/resources/static/home.html
		return "/home.html";
	}
}

Controller 어노테이션은 파일을 리턴하며, return 부분에 파일명을 리턴할 때 "/" 슬래시를 붙여줘야 동작한다. 

파일의 기본 경로는 src/main/resources/static인데, 슬래시를 붙이지 않고 그냥 home.html 이라고 쓰면

src/main/resources/statichome.html이 되어버리기 때문이다.

RestController는 문자 그 자체를 리턴한다면 Controller는 해당경로 이하에 있는 파일을 리턴한다.

 

2. prefix, suffix

spring:
#  mvc:
#    view:
#      prefix: /WEB-INF/views/  앞에 붙여주는 경로명
#      suffix: .jsp   뒤에 붙여주는 경로명
//http://localhost:8000/blog/temp/jsp
@GetMapping("/temp/jsp")
	public String tempJsp() {
		//prefix : /WEB-INF/views/ 앞에 붙는 경로명
		//suffix : .jsp 뒤에 붙는 경로명
		return "test"; // /WEB-INF/views/test.jsp
	}

 

 

jsp 파일

스프링부트는 기본적으로 jsp 파일을 지원하지 않는다.

정적인 것은 브라우저가 인식할 수 있어서 찾아줄 수 있는데(image, html 같은 파일들)

jsp 파일 같이 동적인 파일은 static에 넣을 수 없어서(동적이다 = 컴파일이 일어나야 한다) 브라우저가 인식할 수 없기 때문이다. 

따라서 템플릿엔진을 jsp파일을 리턴하려면 porm.xml에 jsp 템플릿 엔진을 설정하고 기본경로를 static이 아닌 src에 따로 만든다.

경로를 src > main에 폴더를 만들고 그 안에 jsp 파일을 넣는다

 

 

 

 

 

본 강의는 '메타코딩'님의 동영상 강의를 참고하였습니다.

출처 : https://www.youtube.com/playlist?list=PL93mKxaRDidECgjOBjPgI3Dyo8ka6Ilqm