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

JOY·2022년 2월 8일
0
post-thumbnail

📌 스프링 부트와 JPA 활용1 - 프로젝트 환경설정 1

인프런 - 스프링 부트와 JPA 활용1 by 김영한 을 기반으로 작성된 글입니다.
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발


프로젝트 환경설정 목차

1. 프로젝트 생성

2. 라이브러리 살펴보기

3. View 환경설정

4. H2 데이터베이스 설치

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


프로젝트 환경설정

1. 프로젝트 생성

1) Spring Start

  • 스프링 부트 스타터 (https://start.spring.io/)
  • 사용 기능 : web, thymeleaf, jpa, h2, lombok
    • groupId: jpabook
    • artifactId : jpashop

Project : Gradle Project
Language : Java
Spring Boot version : 2.5.9
Project Metadata
Group : jpabook
Artifact : jpashop
Package name : jpabook.jpashop
Packaging : Jar
Java version : 11
Dependencies : Spring Web (WEB), Thymeleaf (TEMPLATE ENGINES), Spring Data JPA (SQL), H2 Database (SQL),Lombok (DEVELOPER TOOLS)

Lombok : Java의 반복되는 getter, setter 등의 메서드 코드들을 어노테이션으로 간단하게 줄여주는 라이브러리

  • Generate

2) IntelliJ IDEA

Import Project

  • Gradle 전체 설정 - build.gradle
plugins {
	id 'org.springframework.boot' version '2.5.9'
	id 'io.spring.dependency-management' version '1.0.11.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'
	implementation 'org.springframework.boot:spring-boot-starter-validation'
	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()
}

동작 확인

  • 기본 테스트 케이스 실행
public static void main(String[] args) {
		SpringApplication.run(JpashopApplication.class, args);
	}

http://localhost:8080/

Whitelabel Error Page가 나오면 성공


  • 테스트 실행
package jpabook.jpashop;

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class JpashopApplicationTests {

	@Test
	void contextLoads() {
	}

}
테스트 성공




❗ 오류

Gradle 전체 설정 과정 에서
Gradle sync failed: Could not find method testImplementation() 오류 발생!
testImplementation() 메소드를 찾을 수 없다는 것을 알게되었다.

gradle> wrapper > gradle-wrapper.properties에서 Gradle 버전 확인

distributionUrl 에서 gradle-7.3.3 확인

Gradle 버전 7에서는 compile, testComplie 대신
implementataion, testImplementation 을 사용해야 한다고 한다.

❗ 해결

dependencies {
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

dependencies 부분에 testImplementation 해당 코드를 추가했더니 오류가 해결되었다!

profile
Just Do IT ------- 🏃‍♀️

0개의 댓글