상세 컨텐츠

본문 제목

SpringBoot + Thymleaf + H2Database 프로젝트 세팅

JAVA

by devTak 2023. 5. 4. 15:57

본문

반응형

출처 : https://spring.io/

세팅

Project Generate

  • 3.0 버전 이후 사용

필수 Dependencies 설치

  1. Spring Web : 스프링을 사용하는데 기본적인 디펜던시 패키지 모음
  2. Thymeleaf : BladeTemplate 처럼 요즘 Spring 기반의 프로젝트에서 많이 쓰는 템플릿엔진
  3. Spring Data JPA : Spring 에서 ORM 으로 데이터를 조작할 수 있는 기술
    1. Java Persistent API : 구현을 가능하게 하는 코어 기술
    2. Hibernate : 코드측면에서 사용가능하게 하는 기술
  4. H2Database : Mysql 보다 스터디나 토이프로젝트에 적합한 DBMS
  5. Lombok : 스프링에 Annotation 확장 기능
  6. Validation : Test 코드에서 validation 을 쉽게 해주는 패키지

Spring Data JPA

Lombok

Thymeleaf

  1. Spring 을 위한 기능들이 지원
  2. Natural templates
    1. 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

스프링부트를 사용하면서, 개발환경에서 개발할 때 용이한 패키지

  1. 캐시초기화
  2. 파일에 대한 서버 재시작 없이 컴파일 가능

devtools 를 사용하면 특정 파일만 재컴파일 가능하게 제공해준다.

>Build > Recompile “hello.html”

IDE Package Build

인텔리제이

  1. 인텔리제이 실행
  2. generate 한 패키지 세팅 압축해제
  3. 인텔리제이 오픈 후 패키지 build.gradle 오픈
  4. package initialize 자동 실행
  5. settings 에 들어가서 annotation processor 에 enable annotation processing 을 체크해준다

Vscode

  1. Extension Pack for Java 설치
  2. Debugger for Java 설치
  3. Gradle for Java 설치
  4. Lombok Annotations Support for VS Code
  5. 프로젝트 빌드 및 실행
  6. 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 설정, 동작확인

선행조건

  1. java 설치 (H2는 java 환경에서 돌아감)
  2. h2.bat 실행

  1. 최초 123.234.535.243:8082 와 같은 랜덤 아이피로 실행되는데, 최초 실행
  2. 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

반응형