인프런 실전!스프링 부트와 JPA 활용 1편 수업 내용을 기반으로 제작
프로젝트를 진행하게 되면 자신이 작성한 코드 뿐만 아니라 수 많은 라이브러리들을 활용해서 개발하는데, 이러한 라이브러리들을 자동으로 관리해주는 도구가 maven,gradle 이다.
gradle로 넘어가는 추세라고 함.
plugins {
id 'org.springframework.boot' version '2.4.1'
id 'io.spring.dependency-management' version '1.0.10.RELEASE'
id 'java'
}
group = 'jpabook'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
runtimeOnly 'com.h2database:h2'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
//JUnit4 추가
testImplementation("org.junit.vintage:junit-vintage-engine") {
exclude group: "org.hamcrest", module: "hamcrest-core"
}
}
test {
useJUnitPlatform()
}
spring web starter : MVC 등 스프링으로 웹을 만드는데 필요한 기능들 지원
Thymeleaf : MVC 를 만들 때 필요 jsp보다 장점이 많음(markup을 깨지 않음)
Spring Data JPA : DB 접근기술
h2 database : 간편하다는 장점이 있는 데이터베이스.( 나중에 MySQL 로 대체)
lombok : 어노테이션을 이용해 반복코드 생략
ex) Getter, Setter
springboot plugin 이 알아서 의존관계 라이브러리들의 버전까지 관리해준다.
resources -> application.properties or application.yml
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/jpashop;MVCC=TRUE
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create //애플리케이션 실행시점에 ENTITY 초기화 후 다시 생성
properties:
hibernate:
# show_sql: true // SOUT 으로 SQL 출력
format_sql: true
logging.level:
org.hibernate.SQL: debug // LOG 로 SQL 출력
org.hibernate.type: trace
jar 실행하는 법
1.프로젝트 파일에서 cmd 로 gradlew (clean) build
2. build/libs 로 이동
3. 생성된 jar파일 주소 복사
4. java -jar 주소 -> 실행
springBoot DataSource Decorator
P6Spy - 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6' 를 build.gradle 에 추가하면 boot가 auto-configuration 으로 자동 등록
콘솔창에 sql value값까지 나오게 함
이런 라이브러리는 개발 시점엔 활용하되 운영시에는 성능문제를 고려해봐야함.