dev.note/환경

spring boot h2 database 세팅

CrazyK 2022. 12. 13. 11:41

진행 된 환경은 다음과 같음

  • spring boot 3.0.0
  • spring 6
  • 설정파일 - application.properties
TMI
본인은 yml보다는 properties 파일을 좋아한다
yml이 가독성이 좋다고 하는데 내눈엔
properties가 더 눈에 잘보인다
어느 위치에 있는지 눈으로 위아래 보는것과
바로 윗줄 아랫줄에 글자가 어디까지 같은지
보는건 크게 차이나지 않나...

일단 라이브러리가 추가 되어있어야 한다

본인의 dependencies는 아래와 같음

implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.h2database:h2:2.1.210'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'

필요해서 몇가지 넣었는데

runtimeOnly 'com.h2database:h2:2.1.210'

이부분만 상관있다

 

embed 모드로 셋팅하며

설정만 넣어주면 알아서 된다

# H2 DB 연결 설정
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:~/h2-db-the-fuck-you-want
spring.datasource.username=sa
spring.datasource.password=

# 구동시 DB 초기화 설정
spring.sql.init.mode=always
spring.sql.init.schema-locations=classpath:sql/schema.sql
spring.sql.init.data-locations=classpath:sql/data.sql

# H2 콘솔 사용 여부 및 접속 경로
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

DB설치가 필요 없다는게

엄청난 매리트 이다

 

참고로 ~는 사용자 경로를 뜻하고...

그 뒤에 적어둔 내용으로 db 파일이 만들어진다

그리고 embed 모드로 사용중엔

다른데서 접속을 할 수가 없다

프로그램 구동중에 다른 DB 툴로

연결이 안된다는 말이다

 

스키마 및 데이터 위치는 

resources 아래에 넣어주었고

classpath를 붙여야 한다

안그러면 엉뚱한 곳에서 찾는다

 

콘솔설정은 넣었으나

시큐리티 설정에 막혀서
접속이 불가능 했다

접속 설정을 바꿨지만 먹히지 않아서

중요한 것도 아니고

하고자 하는 내용도 아니라서

그냥 Fuck it 하고 돌아섬...

 

시퀄라이트를 써봤을땐

스레드 지원이 안되서 동시 사용이 불가능했는데

이건 어떤지 모르겠다