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 하고 돌아섬...
시퀄라이트를 써봤을땐
스레드 지원이 안되서 동시 사용이 불가능했는데
이건 어떤지 모르겠다