세팅
Project Generate
필수 Dependencies 설치
- Spring Web : 스프링을 사용하는데 기본적인 디펜던시 패키지 모음
- Thymeleaf : BladeTemplate 처럼 요즘 Spring 기반의 프로젝트에서 많이 쓰는 템플릿엔진
- Spring Data JPA : Spring 에서 ORM 으로 데이터를 조작할 수 있는 기술
- Java Persistent API : 구현을 가능하게 하는 코어 기술
- Hibernate : 코드측면에서 사용가능하게 하는 기술
- H2Database : Mysql 보다 스터디나 토이프로젝트에 적합한 DBMS
- Lombok : 스프링에 Annotation 확장 기능
- Validation : Test 코드에서 validation 을 쉽게 해주는 패키지
Spring Data JPA
Lombok
Thymeleaf
- Spring 을 위한 기능들이 지원
- Natural templates
- markup을 깨지 않고 쓸 수 있다.
스프링 부트 thymeleaf viewName 매핑
- resources:templates/ +{ViewName}+ .html
@Controller
public class HelloController {
@GetMapping("hello")
public String hello(Model model) {
model.addAttribute("data", "hello!!");
return "hello";
}
}
/Resource/templates
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Hello</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p th:text="'안녕하세요. ' + ${data}" >안녕하세요. 손님</p>
</body>
</html>
Spring Boot DevTools
스프링부트를 사용하면서, 개발환경에서 개발할 때 용이한 패키지
- 캐시초기화
- 파일에 대한 서버 재시작 없이 컴파일 가능
devtools 를 사용하면 특정 파일만 재컴파일 가능하게 제공해준다.
>Build > Recompile “hello.html”
IDE Package Build
인텔리제이
- 인텔리제이 실행
- generate 한 패키지 세팅 압축해제
- 인텔리제이 오픈 후 패키지 build.gradle 오픈
- package initialize 자동 실행
- settings 에 들어가서 annotation processor 에 enable annotation processing 을 체크해준다
Vscode
- Extension Pack for Java 설치
- Debugger for Java 설치
- Gradle for Java 설치
- Lombok Annotations Support for VS Code
- 프로젝트 빌드 및 실행
- package initialize 자동 실행
H2 Database
- 개발이나 테스트 용도로 가볍고 편리한 DB, 웹화면 제공
INFO
- https://www.h2database.com
- 다운로드 및 설치(버전 : 2.1.214)
- 데이터베이스 파일 생성 방법
- http://localhost:8082 접속
- jdbc:h2:~/{packageName ex. jinwook}(최초 한번, 세션키 유지한 상태로 실행)
- ~/jpashop.mv.db 파일 생성됨 확인 (사용자디렉토리 내)
- 이후 부터는 jdbc:h2:tcp://localhost/~/{packageName ex. jinwook}으로 접속
JPA 와 DB 설정, 동작확인
선행조건
- java 설치 (H2는 java 환경에서 돌아감)
- h2.bat 실행
- 최초 123.234.535.243:8082 와 같은 랜덤 아이피로 실행되는데, 최초 실행
- sessionId를 유지한 상태에서 localhost 로 변경
Resource JPA H2 연결
resources → properties 보다 yml 이 깔끔함
spring:
datasource:
url: jdbc:h2:tcp://localhost/~/jpashop;
username: sa
password:
driver-class-name: org.h2.Driver
jpa:
hibernate:
ddl-auto: create
properties:
hibernate:
# show_sql: true
format_sql: true
logging:
level:
org.hibernate.sql: debug
이슈발생 참고링크
https://atoz-develop.tistory.com/entry/H2-Database-%EC%84%A4%EC%B9%98-%EC%84%9C%EB%B2%84-%EC%8B%A4%ED%96%89-%EC%A0%91%EC%86%8D-%EB%B0%A9%EB%B2%95
https://abcdefgh123123.tistory.com/331