주요 Library 목록
HikariCP
DB Connection Pool Library
slf4j
인터페이스 모음으로 요새 대세.
라이브러리 설정만 바꾸면 구현되있는 로거를 바꿀 수 있는 애
Thymeleaf
Web View 단
build.gradle
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'
// 개발 편의성을 위한 툴, reloading 에 유리
implementation 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.h2database:h2'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
H2 DB
최초 연결시
jdbc:h2:~/[이름]
최초 1회 연결시 파일(mv.db) 생성을 위해 로컬 파일 기반 접속.
TCP 원격 접속으로는 파일 생성이 불가능.
DB생성이 그래도 안되는데요?
그럼 이방법을 써보시라
생성 완료시 %USER_HOME% 디렉토리에 `dbtest.mv` 파일이 생성됨을 확인할 수 있다.
이후 연결시 : tcp 연결
jdbc:h2:tcp://localhost/~/[이름]
왜? 로컬 파일접속 시 파일에 .lock 이 생기며 락이 걸리기 때문에 다른 클라이언트에서 h2 db 접근이 불가함
여러 H2 Client 에서 DB 연결을 허용하기 위해 원격 TCP 연결 사용 권장
Spring 라이브러리 의존 버전 확인방법
spring.io > Appendix > Dependency Versions > Managed Dependency Coordinates
SpringBoot 버전별 Transitive depencency version을 제공
build.gralde 예시
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.0'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'jpabook'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '18'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
// 아래 버전정보 명시가 없는 라이브러리들은 자동으로 springboot 가 버전을 명시하여 받아와줌. (의존성 설정)
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'
// 개발 편의성을 위한 툴, reloading 에 유리
implementation 'org.springframework.boot:spring-boot-devtools'
// datasource proxy library
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:latest'
runtimeOnly 'com.h2database:h2'
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
application.yaml 예시
spring:
# DB Connection 과 관련된 설정
datasource:
url: jdbc:h2:tcp://localhost/~/jpashop
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
# 자동으로 테이블 생성하는 모드
# Entity 정보를 보고 재생성
ddl-auto: create
properties:
hibernate:
# system out 에 출력되는 환경이라 비활성화
show_sql: false
format_sql: true
server:
port: 9000
logging:
level:
# Hibernate 가 생성하는 SQL 이 모두 보이도록 디버그모드 사용.
org.hibernate.SQL: debug
org.hibernate.type: trace
'JVM > Spring' 카테고리의 다른 글
[Spring] ConfigurationProperties + ConfigurationPropertiesScan (0) | 2023.02.13 |
---|---|
[SpringBoot] Naming methods in each layer (0) | 2023.02.09 |
[Spring] Bean Scope (0) | 2022.12.07 |
[Spring] 빈 생명주기 콜백 (0) | 2022.12.06 |
[Spring] Autowired 사용시 주의 (Feat. Custom Annotation) (0) | 2022.12.01 |