전체 보기
📗

[스프링부트와 JPA 활용1] 1. 프로젝트 환경 설정

작성일자
2022/11/09
태그
SUB PAGE
프로젝트
JPA 활용1
책 종류
1 more property

1. 프로젝트 생성

스프링 부트 스타터(https://start.spring.io/)
groupId: jpabook
artifactId: jpashop
사용 기능: web, thymeleaf, jpa, h2, lombok, validation
자바 버전: 11
스프링 부트 버전: 2.7.5
Junit 4 적용
build.gradle
lombok 적용 및 확인
Settings → plugin → lombok 검색해 설치
이미 설치되어 있었음
Settings → Annotation Processors 검색 → Enable annotation processing 체크 (재시작)
임의의 테스트 클래스를 만들고 @Getter, @Setter 확인
IntelliJ Gradle 대신에 자바 직접 실행
최근 IntelliJ 버전은 Gradle로 실행을 하는 것이 기본 설정이다. 이렇게 하면 실행속도가 느리다. 다음과 같이 변경하면 자바로 바로 실행해서 실행속도가 더 빠름
Settings → Gradle 검색
Build and run using: Gradle → IntelliJ IDEA
Run tests using: Gradle → IntelliJ IDEA
동작 확인
src/main/java/jpabook.jpashop/JpashopApplication의 main 실행

2. 라이브러리

gradle 의존관계 보기
터미널로 jpashop 폴더에 들어가서 아래 코드 입력
./gradlew dependencies
혹은 ./gradlew dependencies —configuration compileClasspath
혹은 intelliJ에서 우측 상단 Gradle 클릭
jpashop/Source Sets/main/Dependencies
스프링 부트 라이브러리
spring-boot-starter-web
spring-boot-starter-tomcat: 톰캣 (웹서버)
spring-webmvc: 스프링 웹 MVC
spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)
spring-boot-starter-data-jpa
spring-boot-starter-aop
spring-boot-starter-jdbc
HikariCP 커넥션 풀 (부트 2.0 기본)
hibernate + JPA: 하이버네이트 + JPA
spring-data-jpa: 스프링 데이터 JPA
spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅
spring-boot
spring-core
spring-boot-starter-logging
logback, slf4j
spring-boot-starter-test
junit: 테스트 프레임워크
mockito: 목 라이브러리
assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리
spring-test: 스프링 통합 테스트 지원

3. View 환경 설정

thymeleaf
장점)
Natural templates: 마크업 깨지 않고 그대로 씀
spring과 통합
단점)
닫는 태그 정확히 매칭 안하면 에러 발생
단, 3.0부턴 에러 발생 안 함
thymeleaf 템플릿엔진 동작 확인(hello.html)
src/main/java/jpabook.jpashop/HelloController
src/main/resources/templates/hello.html
렌더링 없는 정적 페이지 만들기(index.html)
src/main/resources/static/index.html
서버 재시작 없이 View 파일 변경
build.gradle에 아래 코드 추가
implementation 'org.springframework.boot:spring-boot-devtools'
View 파일 수정 후 [메뉴: build → Recompile] 후 페이지 새로고침

4. H2 데이터베이스 설치

1) H2 설치

1.4.200 버전으로 설치

2) H2 실행

1.
앱 실행
H2 Console 아이콘 클릭해 실행
혹은 cmd로 실행
cd C:\Program Files (x86)\H2\bin
h2.bat
2.
JDBC URL이 jdbc:h2:~/jpashop인 상태로 연결 버튼 누르기(최초 한 번)
DB 파일 생성할 경로 지정하는 것임
스프링 입문에서 났던 바보 같은,, 에러
이번엔 에러 발생 안 함 → 저장한 설정을 Embedded가 아니라 Server로 바꿔줬음
C:\Users\choo0~/jpashop.mv.db 파일 생성 확인
3.
이후부턴 JDBC URL을 jdbc:h2:tcp://localhost/~/jpashop로 해서 연결 버튼 누르기
네트워크 모드로 접근

5. JPA와 DB 설정, 동작 확인

설정 파일로 properties와 yml 둘 중 하나 선택
src/main/resources/application.properties 삭제
src/main/resources/application.yml 생성
yml 파일 → 설정
src/main/resources/application.yml
H2 데이터베이스의 MVCC 옵션은 H2 1.4.198 버전부터 제거됨.
1.4.200 버전에서는 MVCC 옵션을 사용하면 오류가 발생함
회원 엔티티
main/java/jpabook/jpashop/Member.java
회원 리포지토리
main/java/jpabook/jpashop/MemberRepository.javaㅇ
회원 리포지토리 테스트
테스트 파일 생성
test/java/jpabook/jpashop/MemberRepositoryTest.java