노트 :

[spring] 스프링 부트 3.x 버전 데이터베이스 설정(application.yml) 본문

JAVA

[spring] 스프링 부트 3.x 버전 데이터베이스 설정(application.yml)

IT_달토끼 2024. 1. 3. 15:15

 

강의를 보고 게시판을 만들고 있는데 강의 속 스프링 부트의 버전은 2.x 버전 대이고 자바 버전은 11 버전이다.

 

현재 spring initializer에서 지원하지 않는 버전이라 지원하는 3.x 버전과 자바 17이상 버전으로 게시판을 만들고자 한다.

 

버전 상의 차이 때문에 똑같이 따라 하면 에러가 발생하는 경우가 많은데 나중에 참고하기 위해 정리해본다.

 

먼저 application.yml 설정이다.

# 서버 포트 설정
server:
  port: 8999

# database 연동 설정
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://localhost:3306/project?useSSL=false&useUnicode=true
                      &serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true
    username: user_name
    password: user_pw
  thymeleaf:
    cache: false

# spring data JPA 설정
  jpa:
    database: mysql
    database-platform: org.hibernate.dialect.MySQL8Dialect
    open-in-view: false
    show-sql: true
    hibernate:
      ddl-auto: create
    defer-datasource-initialization: true

 

 

사용하는 데이터 베이스 종류는 MySQL 이다. 

 

데이터 베이스 버전을 확인하려면 cmd 창에 mysql --version 을 입력하면 된다.

 

내가 사용하는 버전은 8.0.33 이다.

 

MySQL 8.x 버전부터는 보안 상 이유로 url을 입력할 때, useSSL=false와 allowPublicKeyRetrieval=true를 추가해야 한다.

 

JPA 설정 부분에서 database-platform 에서는 database-platform: org.hibernate.dialect.MySQL8Dialect 을 입력하면 된다.

 

 

추가로 build.gradle 설정에서는 dependencies에 MySQL을 추가시켜줘야 한다.

 

implementation 'mysql:mysql-connector-java:8.0.33'

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.2.1'
	id 'io.spring.dependency-management' version '1.1.4'
}

group = 'board'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '18'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	implementation 'mysql:mysql-connector-java:8.0.33'
}

tasks.named('test') {
	useJUnitPlatform()
}

 

 

설정 외에도 javax 문제 등 클래스 임포트 부분에서도 에러가 많이 나서 진도가 안 나가고 있다ㅠ

 

해결되는 대로 하나씩 정리해 나갈 예정이다.

'JAVA' 카테고리의 다른 글

[Servlet] 서블릿 컨테이너  (2) 2024.01.02
자바 로그 레벨(log)  (0) 2023.12.26
열거형(enum)  (2) 2023.12.26
스트림(Stream)  (0) 2023.12.24
컬렉션 프레임웍(Collections Framework)  (0) 2023.12.24