SpringBoot 다운로드 URL
요즘 추세가 Maven > Gradle로 넘어가는 추세라고 합니다.
Java버전은 8하고 11을 가장 많이 쓰는데
8에서 기능이 추가된게 11이기 때문에 저는 8을 선택하였습니다.
추천 Dependencies
Lombok
getter, setter를 어노테이션을 통하여 간편하게 생성가능
Spring Web
각종 스프링 라이브러리 모음
Thymeleaf
jsp를 대신하여 사용함
Spring Data JPA
JPA사용을 위해 필수
H2 Database
테스트용 데이터베이스
H2 Database 다운
https://www.h2database.com/html/main.html
설치 후 h2 console을 실행시키면
처음 생성은 연결을 통하여 파일 형태로 해당 데이터베이스를 생성해주셔야합니다
그 후
jdbc:h2:tcp://localhost/~/test
주소로 바꿔줍니다. tcp를 이용해 SpringBoot에서 접속하기 때문입니다.
application.properties(삭제) > application.yml(생성)
properties를 삭제하고 yml로 바꿔줍니다
yml이 트리구조 형식이기 떄문에 가독성이 좋아 변경하였습니다
yml 자동 완성 플러그인
Setting > plugin > Spring Assistant 설치
폴더 구조
테스트를 위한 Entity와 Repository를 생성해줍니다.
MemberEntity
package com.example.demo.entity;
import lombok.Getter;
import lombok.Setter;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Getter @Setter
@Entity
public class MemberEntity {
@Id @GeneratedValue
private Long id;
private String username;
}
MemberRepository
package com.example.demo.repository;
import com.example.demo.entity.MemberEntity;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@Repository
public class MemberRepository {
@PersistenceContext
private EntityManager em;
public Long save(MemberEntity member) {
em.persist(member);
return member.getId();
}
public MemberEntity find(Long id) {
return em.find(MemberEntity.class, id);
}
}
테스트 생성
MemberRepsitory에서 컨트롤 + 쉬프트 + T입니다
MemberRepositoryTest
package com.example.demo.repository;
import com.example.demo.entity.MemberEntity;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.stereotype.Repository;
import org.springframework.test.annotation.Rollback;
import org.springframework.transaction.annotation.Transactional;
import static org.junit.jupiter.api.Assertions.*;
@SpringBootTest
class MemberRepositoryTest {
@Autowired
MemberRepository memberRepository;
@Transactional
@Test
@Rollback(false)
public void testMember() throws Exception {
MemberEntity member = new MemberEntity();
member.setUsername("userTest1");
Long saveId = memberRepository.save(member);
MemberEntity findMember = memberRepository.find(member.getId());
assertEquals(saveId, findMember.getId());
}
}
테스트 케이스 실행
데이터 확인
insert 로그 확인
이렇게 values쪽에 ?로 데이터가 나오게 됩니다.
build.gradle에 추가해줍니다.
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6'
로그 확인
이렇게 로그에 values가 찍히게 됩니다
이게 개발단에서는 사용하기 편하지만 실서버에서는 서버쪽에 부하를 줄 수 있으니 해당 부분은 꼭 체크해주세요!
'JAVA' 카테고리의 다른 글
SpringBoot + kafka를 이용한 채팅개발 방 여러개, db데이터 입력까지 (0) | 2021.09.18 |
---|
댓글