Java/Spring Boot
[Spring Boot] CRUD Project Template
Devvy_
2022. 11. 17. 23:12
매번 스프링 부트를 활용해서 새로운 프로젝트를 진행할 때마다 기본 환경 구성이 너무 귀찮았습니다. 그래서 저는 제가 자주 사용하는 기술을 모아서 하나의 템플릿으로 만들어서 사용하고 있는데요, 이 프로젝트를 공유드리고자 합니다.
https://github.com/seonwoo960000/spring-boot-all-in-one
GitHub - seonwoo960000/spring-boot-all-in-one: A spring boot project with default dependencies
A spring boot project with default dependencies . Contribute to seonwoo960000/spring-boot-all-in-one development by creating an account on GitHub.
github.com
해당 프로젝트의 의존성은 다음과 같습니다.
- Web layer
- spring-boot-starter-web
- spring-boot-stater-validation: 요청 파라미터 검증
- Database layer
- spring-boot-starter-data-jpa
- liquibase-core: 데이터베이스 스키마 버저닝 및 테스트 컨테이너에 스키마 적용
- mysql-connector-j: MySQL을 위주로 하기 때문에 mysql 의존성을 활용
- testcontainers: 도커에 MySQL을 띄워서 최대한 운영환경과 비슷한 환경에서 테스트 진행이 가능
- Utility
- mapstruct
- lombok
- commons-io
- commons-lang3
데이터베이스의 스키마가 변경될 때 Intellij의 다음 기능을 활용하면 편리하게 코드에 변경분을 반영할 수 있습니다.
- JPA Buddy
- 데이터베이스의 스키마를 읽어서 entity를 만들 수 있음
- Spring Data Repository 인터페이스의 생성
- Entity와 연동할 수 있는 DTO 생성
- Liquibase에 schema 변경 반영