start.spring.io 사이트에서 스프링 부트 2.x에 대한 지원이 종료되어서 2.x를 더는 선택할 수 없습니다.
JDK도 17 이상을 사용해야 합니다.
* 프로젝트 생성
스프링부트 3.3.3
Java 17
내가 설치한 자바 버전 17로 SDK 설정.
JVM도 자바 17로 설정.
플러그인에서 lombok 설치 후, 어노테이션 프로세서 설정.
잘 동작하는지 코드 실행해 보기.
localhost:8080에 접속해 보니 잘 동작하는 것을 확인할 수 있다.
프로젝트 생성 끝.
* View 설정
View 동작 원리
1. localhost:8080/hello에 접속하면 HTTP GET 요청이 서버로 전송된다.
2. 서버는 HelloController의 hello 메서드에 GET 요청을 매핑한다.
3. hello 메서드는 Model 객체에 "hello!!" 문자열을 data라는 키로 추가한다.
4. 메서드는 마지막 줄 return "hello";의 hello 문자열을 반환한다. 여기서 hello는 뷰의 이름이다.
5. 스프링부트는 hello라는 이름에 해당하는 뷰 파일(hello.html)을 찾아서 렌더링을 진행한다.
6. hello.html은 Thymeleaf 템플릿 엔진을 통해 Model에 저장된 data의 값을 가져와 "안녕하세요"와 결합하여 출력한다.
이렇게 뷰 렌더링 결과가 웹 브라우저의 응답으로 전송된다.
* H2 데이터베이스
H2 Database Engine
H2 Database Engine Welcome to H2, the Java SQL database. The main features of H2 are: Very fast, open source, JDBC API Embedded and server modes; in-memory databases Browser based Console application Small footprint: around 2.5 MB jar file size Supp
www.h2database.com
위 사이트에서 본인 환경에 맞는 버전 다운로드.
스프링 부트 2.x 버전은 스프링 부트 3.x 버전은
압축 풀고 실행.
연결.
데이터베이스 설치 끝.
(위 데이터베이스는 localhost:8082에 접속하여 접근한다.)
* JPA, DB 설정
application.yml 설정 파일을 생성 및 설정.
package jpabook.jpashop;
import jakarta.transaction.Transactional; // JPA 트랜잭션 관리
import org.junit.jupiter.api.Assertions; // JUnit5 Assertions 클래스
import org.junit.jupiter.api.Test; // JUnit5 Test 어노테이션
import org.junit.jupiter.api.extension.ExtendWith; // JUnit5와 연동을 위한 확장
import org.springframework.beans.factory.annotation.Autowired; // 의존성 주입을 위한 어노테이션
import org.springframework.boot.test.context.SpringBootTest; // 스프링부트 애플리케이션 컨텍스트 로드
import org.springframework.test.annotation.Rollback; // 테스트 후 트랜잭션 롤백 설정
import org.springframework.test.context.junit.jupiter.SpringExtension; // 테스트 확장 기능
@ExtendWith(SpringExtension.class) // JUnit5와 통합
@SpringBootTest // 테스트 실행
@Rollback(false) // 테스트 실행 후 롤백되지 않도록 설정
public class MemberRepositoryTest {
@Autowired
MemberRepository memberRepository;
@Test
@Transactional
public void testMember() throws Exception {
// given : 테스트 설정
Member member = new Member();
member.setUsername("memberA");
// when : 테스트하고자 하는 동작
Long savedId = memberRepository.save(member); // 멤버 id 반환
Member findMember = memberRepository.find(savedId); // id를 통해 멤버 조회
// then : 결과 확인
Assertions.assertEquals(member.getId(), findMember.getId()); // (기대값, 실제값)
Assertions.assertEquals(member.getUsername(), findMember.getUsername());
}
}
shift+ctrl+t로 테스트 파일을 생성 및 작성.
테스트 파일 실행.
테이블이 생성되었고, 데이터까지 잘 동작하는 것 확인.
세팅 끝.
'WEB > Spring Boot' 카테고리의 다른 글
[Spring Boot] 쇼핑몰 #3 - 엔티티 클래스 개발 (7) | 2024.10.08 |
---|---|
[Spring Boot] 쇼핑몰 #2 - 도메인 모델과 테이블 설계 (2) | 2024.10.07 |
[Spring Boot] REST API - PUT (+ Talend API Tester) (0) | 2024.07.14 |
[Spring Boot] REST API - POST (+ Talend API Tester) (0) | 2024.07.14 |
[Spring Boot] REST API - GET (0) | 2024.07.12 |
댓글