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

 

'Spring Boot' 카테고리의 다른 글

프로젝트 구조  (0) 2022.08.25
Gradle 그레이들이란?  (0) 2022.08.24
IntelliJ/Spring Boot 인텔리제이 세팅  (0) 2022.08.23
JAVA/JDK 1.8 설치 및 환경 변수 설정  (0) 2022.08.23