Spring Boot

Spring/applicaion.yml 설정 파일

위한1214 2022. 8. 25. 14:04

applicaion.properties 파일을 보자.

 

 

  • server.xml
  • web.xml
  • context.xml

위의 세 가지 파일이 applicaion.properties로 합쳐져 있다.

 

확장자가 .properties인 파일은 *.* = * 의 형식으로 입력해야 한다.

 

스프링은 properties 파일을 권장하지만, 이 형식은 가독성이 좋지 않다.

그래서 우리는 yaml을 사용할 것이다.

 

확장자를 .yml로 바꿔 주자.

 

 

server.port를 자동완성으로 입력한다.

context path 설정은 server에서 한다.

서버 밖에서는 찾을 수 없고, 포트 번호를 입력하지 않아도 찾을 수 없다.

 

 

서버의 포트, 컨텍스트 패스, 문자 인코딩, 세션 타임아웃을 설정해 주자.

server:
  port: 8080
  servlet:
    context-path: /
    encoding:
      charset: UTF-8
    session:
      timeout: 30

 

세션 타임아웃

로그인 시에 생성된 로그인 세션 정보를 일정 시간 사용하지 않으면 세션 타임아웃이 발생하고, 해당 로그인 정보를 담고 있는 세션 정보가 삭제된다.

 

DB에 연결하자.

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:(MySQL의 포트번호)/(DB이름)?serverTimezone=Asia/Seoul
    username: (user명)
    password: (password)

 

hiberate는 SQL을 직접 사용하지 않고 메서드만으로 쿼리를 사용할 수 있게 해주는 라이브러리다.

hibernate 기술을 쉽게 사용하게 해 주는 라이브러리가 JPA다.

 

spring:
  jpa:
    hibernate:
      ddl-auto: create

 

hibernate 옵션

1. ddl-auto: create

서버를 실행할 때마다 테이블을 삭제하고 새로 만든다.

2. ddl-auto: update

필드 수정 시에 필요한 옵션

3. ddl-auto: none

서버를 실행할 때마다 아무 것도 하지 않는 옵션

 

 

모델에서 설정한 이름 표기법대로 컬럼명을 설정하자.

 

spring:
  jpa:
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

 

StackTrace에 쿼리문을 보여주게 하자.

 

spring:
  jpa:
    show-sql: true

 

StackTrace에 색을 입혀 보기 좋게 바꿔주자.

 

spring:
  output:
    ansi:
      enabled: always

 

 

전체 코드는 아래와 같다.

 

server:
  port: 8080
  servlet:
    context-path: /
    encoding:
      charset: UTF-8
    session:
      timeout: 30

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:(MySQL의 포트번호)/(DB이름)?serverTimezone=Asia/Seoul
    username: (user명)
    password: (password)
  jpa:
    hibernate:
      ddl-auto: create
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
    show-sql: true
  output:
    ansi:
      enabled: always

 

 

 

 

이하는 참고 글

https://velog.io/@ikerbm94/SpringBoot-MySQL-%EC%97%B0%EA%B2%B0-%EC%84%A4%EC%A0%95-application.yml

 

[SpringBoot] MySQL 연결 설정 (application.yml)

먼저 Spring Boot는 properties파일을 공식적으로는 지원하나 yml파일로 포스팅하겠다. 따라서 일단 application.properties파일을 application.yml로 바꾸자. 그리고 application.yml 파일안의 내용을 아래와 같이

velog.io

https://jaewon2336.tistory.com/225?category=541782 

 

스프링 6강. 프로젝트 구조, yml

프로젝트를 만들 때 테스트를 하면서 개발을 하라고 틀이 만들어져 있다. 이 파일에 들어가 보면 main이 있는 게 아닌 @Test가 있다. main의 단점 : 파일을 실행할 때 프로젝트 전체 파일을 읽는다.

jaewon2336.tistory.com

https://jaewon2336.tistory.com/235

 

스프링 16강. application.yml 설정 파일

server: port: 8080 servlet: context-path: / encoding: charset: utf-8 spring: datasource: url: jdbc:mariadb://localhost:3306/greendb driver-class-name: org.mariadb.jdbc.Driver username: green passwor..

jaewon2336.tistory.com

https://jaewon2336.tistory.com/308

 

블로그-V3. 프로젝트 세팅

3번째로 복습하는 블로그 프로젝트이다. 이제는 최종 프로젝트이다. 라이브러리를 선택해주는데 두 가지 추가되는 게 있다. 원래 사용하던 6개에 2개가 추가되었다. Spring Boot DevTools Lombok Spring Web

jaewon2336.tistory.com

https://blueyikim.tistory.com/253

 

[구성] 세션 타임아웃(Session Timeout) 설정 방법

로그인 시에 생성된 로그인 세션정보가 일정시간 사용하지 않아 세션 타임아웃이 발생하고, 해당 로그인 정보를 담고 있는 세션 정보가 삭제됩니다. 이때 기준이 되는 세션 타임아웃값을 설정

blueyikim.tistory.com