프로젝트 환경설정

김파란·2024년 6월 6일

project

목록 보기
1/9

0. 기본 프로젝트 설정

# MySql DB사용
# JPA
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/스키마이름?serverTimezone=UTC&characterEncoding=UTF-8
    username: 아이디
    password: 비밀번호
  jpa:
    database: mysql
    database-platform: org.hibernate.dialect.MySQLDialect
    show-sql: true
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true
        default_batch_fetch_size: 1000
  messages:
    basename: messages,errors


#  security:
#    user:
#      name: test
#      password: test
#      roles: USER
server:
  servlet:
    encoding:
      force-response: true

0-1. H2 이용

spring:
  application:
    name: 어플리케이션 이름
  h2:
    console:
      enabled: true
      settings:
        web-allow-others: true
      path: /h2-console
  datasource:
    url: jdbc:h2:tcp://localhost/~/DB이름
    username: sa
    password:
    driver-class-name: org.h2.Driver
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true
    generate-ddl: true
    defer-datasource-initialization: true
  sql:
    init:
      mode: always

logging:
  level:

1. 초기 데이터 설정

  • spring.jpa.defer-datasource-initialization: true -> script파일이 hibernate 초기화 이후 동작하게 하기 위한 옵션, 내장 데이버에시ㅡ(h2, hsql)에 대해서 스클비트 기반의 초기화를 기본적으로 실행하지만, 내장DB가 아닌 경우 활성화(=alway)를 해야한다
  • spring.sql.init.mode: always -> SQL 초기화를 항상 수행할 것인지 지정, alway 설정시 애플리케이션 시작 시점에 sql 초기화를 항상 수행, sql초기화는 schema.sql 및 data.sql 파일을 실행하여 스키마와 초기 데이터를 설정
  • data.sql이 ddel-auto=create 보다 먼저 실행되기 때문에 오류가 발생, hibernate보다 늦게 실행되도록 설정해줘야 한다
spring:
  ...
  jpa:
    hibernate:
      ddl-auto: create
    defer-datasource-initialization: true
  sql:
    init:
      mode: always

2. RabbitMQ

  • RabbitMQ command Prompt를 연다
  • http://localhost:15672 을 통해 확인, 초기 아이디는 guest, 비밀번호 guest이다
rabbitmq-server -detached
rabbitmq-plugins enable rabbitmq_management 

// 안될시에
rabbitmq-service.bat remove
rabbitmq-service.bat install
rabbitmq-server -detached
rabbitmq-plugins enable rabbitmq_management

3. JPA SQL 확인

implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'

4. Querydsl

//Querydsl 추가
	implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
	annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
	annotationProcessor "jakarta.annotation:jakarta.annotation-api"
	annotationProcessor "jakarta.persistence:jakarta.persistence-api"

0개의 댓글