복습 다시함 처음부터 다시
교육자료 프로젝트 환경 설정 목차
- 프로젝트 생성 (스프링 부트 라이브러리)
- 라이브러리 살펴보기
- View 환경 설정
- H2 데이터베이스 설치
- JPA와 DB 설정, 동작확
<1> 프로젝트생성 : 스프링부트 라이브러리 설치
[ 1 ] 방법
- 방법1: Spring initializer 사용하기 (웹사이트 : start.spring.io)
- 방법2: Gradle프로젝트 수동으로 하기
- Gradle 프로젝트 수동으로……
- 정보소스 : Spring Boot 프로젝트 시작하기
- Gradle 프로젝트 수동으로……
[ 2 ] 스프링 부트 버전 변경하는 경우
- 정보소스 : [SpringBoot] 스프링부트 버전 변경 / 버전 다운그레이드……
- Gradle yml 파일 설정
[ 3 ] Spring initializer 기본 옵션
1. Project
빌드도구 : Gradle-Groovy
2. Language
Java (버전 11)
3. Spring Boot (버전)
버전 2.1.7
버전 2.4.X도 괜찮다고 함.
버전. 두번째 자리부터 메이저 변화 달라질 수 있음.
학습이나 프로젝트 진행시 버전 오류 잘 생각해야함
- 스프링부트3을 사용하게 되는 경우
- Java 17 이상을 사용해야 합니다.
- javax 패키지 이름을 jakarta로 변경해야 합니다.
오라클과 자바 라이센스 문제로 모든 javax 패키지를 jakarta로 변경하기로 했습니다. - H2 데이터베이스를 2.1.214 버전 이상 사용해주세요.
패키지 이름 변경 예)
JPA 애노테이션
javax.persistence.Entity jakarta.persistence.Entity
스프링에서 자주 사용하는 @PostConstruct 애노테이션
javax.annotation.PostConstruct jakarta.annotation.PostConstruct
스프링에서 자주 사용하는 검증 애노테이션
javax.validation jakarta.validation
스프링 부트 3.0 관련 자세한 내용은 다음 링크를 확인해주세요: https://bit.ly/springboot - ……
- 주의! - 스프링 부트 3.0
스프링 부트 3.0을 선택하게 되면 다음 부분을 꼭 확인해주세요.
4. Project MetaData
- group : jpabook
- Artifact : jpashop
5. Dependencies : 라이브러리 디펜던시 옵션
설치할 라이브러리
→ web, thymeleaf, jpa, h2, lombok, validation
- Spring Web Starter (현재 Spring Web)→ 웹 어플리케이션에 기본적인 것
- Thymeleaf → 뷰. 서버사이드 자바 템플릿 엔진
- String Data JPA → Java Persistence API (Spring Data + Hibernate)
- H2 Database → 개발 및 테스트 용으로 적절하다. 간단하게 사용하기 쉽다.
- lombok → 코드 자동화 어노테이션
6. Generate
→ zip파일로 생성됨.
7. 인텔리제이로 열기
다운 → 폴더에 zip파일
폴더 이동
import project 또는 open
→ 처음 할 때는 build.gradle 파일을 선택해서 오픈해주면, 프로젝트가 뜬다.
(라이브러리 다운 받는 동안 오래걸린다.)
<2> build.gradle 살펴보기
미리 build.gradle파일 버전 수정해서, 인강에서 하는 강사선생님 버전에 맞추었다.

plugins
스프링부트 버전 등
plugins {
id 'java'
id 'org.springframework.boot' version '2.1.7.RELEASE'
id 'io.spring.dependency-management' version '1.0.8.RELEASE'
}
그룹과 자바 버전들
group = 'jpabook'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
configurations
lombok 관련한 annotationProcessor
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories
라이브러리 가져온 곳
repositories {
mavenCentral()
}
dependencies
웹사이트에서 선택한, 라이브러리와 관련 설정들
선택한 거는 3~4개 정도 밖에 없지만, 해당 라이브러리가 의존하는 다른 라이브러리를 다 끌고 온다.
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
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'
}
……
<3> 실행 연습
main 메서드 실행.
(스프링 이니셜라이저에서, 메인메서드가 만들어놓았음.
테스트 케이스도 만들어준다.)
package jpabook.jpashop;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class JpashopApplication {
public static void main(String[] args) {
SpringApplication.run(JpashopApplication.class, args);
}
}
콘솔창
embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
→ 내장 톰캣
웹서버 실행 여부
Whitelable Error Page 나오면 성공
……
<4> 롬복 설치 및 확인
→ 나는 원래 설치되어 있었다.
설치 및 설정 방방법
인텔리제이 preference에서
: 윈도우의 경우에는 File→Settings
- 1) plugins 에서 lombok 검색 설치
- 2) Annotation Processors 설정
- → Enable annotation processing 선택
롬복 실행되는지 확인
테스트용으로 getter setter 만드는 것을 통해 확인해보기
@Getter
@Setter
public class Hello {
private String data;
}
package jpabook.jpashop;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class JpashopApplication {
public static void main(String[] args) {
Hello hello = new Hello();
hello.setData("헬로우");
String data = hello.getData();
System.out.println("data = " + data);
SpringApplication.run(JpashopApplication.class, args);
}
}
sout → System.out.println();
soutv → System.out.println("변수이름 = " + 변수);
……
'정리 { Java 백엔드 } > (인강) JPA 프로그래밍 +스프링부트' 카테고리의 다른 글
| (JPA) <7>[조회 성능 최적화] _ V2. "엔티티를 DTO로 변환" (0) | 2023.04.11 |
|---|---|
| (JPA) <6> [조회 성능 최적화] _ V1. "엔티티직접노출"의 경우 (0) | 2023.04.10 |
| (JPA) <5> API개발고급_ 조회용 샘플 데이터 입력 (0) | 2023.04.09 |
| (JPA) <3> API개발기본_회원조회API (0) | 2023.04.07 |
| <2> API개발기본_회원수정API (0) | 2023.04.06 |
댓글