Spring - application.yml

application.yml

Posted by Yan on August 10, 2023

application.yml

유용한 설정 모음

1. debug: false

  • 디버그 로그를 찍을 건지 여부를 선택
  • true 이면 spirng boot의 디버깅 로그를 다같이 볼 수 있음
  • false 이면 logback만 확인 가능

2. manage.endpoints.web.exposure.include: “*”

  • Spring boot Actuator(스프링 부트 애플리케이션의 정보를 API 형식으로 확인할 수 있게 해주는 기능)의 숨겨진 endpointer를 모두 활성화시켜줌

3. logging

1
2
3
4
5
logging:
  level:
    com.java.rootproject: debug
    org.springframework.web.servelet: debug
    org.hibernate.type.descriptor.sql.BasicBinder: trace
  • com.{}.{} : 해당 디렉토리의 모든 로그는 디버그로 보겠다.
  • org.springframework.web.servelet: spring web 사용시 request, response log를 보고 싶은데, 너무 많으니까 web.servelet을 debug로 오픈하면 어디서 request, response가 어느 패키지에서 나오는지 알 수 있다.
  • heibernate ~.BasicBinder : 쿼리 로그를 디버그로 보겠다. 이것을 세팅하지 않으면 내부에 어떤 파라미터가 들어가는지 ?로 들어가게 된다.

4. db

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/board
    username: ---??
    password: ---??
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
    defer-datasource-initialization: true
    hibernate.ddl-auto: create
    open-in-view: false
    show-sql: true
    properties:
      hibernate.format_sql: true
      hibernate.default_batch_fetch_size: 100
  h2.console.enabled: false
  sql.init.mode: always
  • defer-datasource-initialization : 테스트용 데이터를 resources/data.sql (이름은 정해진 규칙임)에 초기값으로 세팅하고 싶은 값을 미리 세팅 가능
  • hibernate.ddl-auto: 엔티티를 통해 자동으로 유추하여 ddl문을 만들어준다.
  • hibernate의 properties: 스프링에서 hibernate의 모든 기능을 지원하는 것은 아니라, hibernate의 property를 특별히 사용하고 싶다면 이 옵션 사용
  • hibernate.format_sql: 디버그 쿼리문이 한 줄로 나오지 않고 포맷팅되어 나오는 것
  • hibernate.default_batch_fetch_size: jpa에서 join이 많은 복잡한 쿼리를 다룰 때 n+1쿼리 문제를 해결하기 위해 한번에 100개씩 select할 수 있도록 하는 기능
  • sql.init.mode: data.sql의 실행 여부 체크. NEVER(절대 실행 안함)/ ALWAYS(항상) / EMBEDDED

5. test db용 setting

---로 도큐먼트를 여러 개 이어서 사용 가능

1
2
3
4
spring:
  config.activate.on-profie: testdb
  datasource:
    ~똑같은 세팅부분
  • config.activate.on-profie : testdb 사용시 이 프로필을 보세요
reference