Resolve "스프링 부트 버전을 3.0 으로 업그레이드"
작업 내용
-
Spring Boot 3.0.4로 마이그레이션 -
연관된 의존성 모두 3.0에 호환되도록 업그레이드 -
Spring Dependency Management
:1.0.11-RELEASE
->1.1.0
-
Spring Security
:5.7.3
->6.0.2
-
Spring Batch
:4.3.6
->5.0.1
-
Spring Rabbit
:2.4.6
->3.0.2
-
Liquibase
:4.9.1
->4.20.0
-
Springdoc OpenAPI
:1.6.9
->2.0.2
(3개의 라이브러리가 하나로 통합됨) -
Mockk
:1.12.4
->1.13.4
-
SpringMockk
:3.1.1
->4.0.1
-
QueryDSL
:Jakarta
에 호환되는 라이브러리로 변경 -
server.servlet.context-path
를/api
로 변경 (Springdoc
에서 해당 값을 참조) - 서버의 모든 서블릿 컨텍스트가
/api
에서 시작함 - 해당 내용에 따라 모든 컨트롤러 엔드포인트에서
/api
접두사 제거 -
기타 호환 수정 -
javax
->jakarta
(Spring 3) -
authorizeRequests
->authorizeHttpRequests
(Spring 3) -
antMatchers
->requestMatchers
(Spring 3) -
org.springdoc.api.annotations.ParameterObject
->org.springdoc.core.annotations.ParameterObject
(Springdoc v2)
배경
Soft Delete 를 작업하는 도중 @SQLDelete
와 @Where
어노테이션으로 해당 기능을 구현하려고 시도하였으나, 추후에 Soft Delete 된 데이터를 애플리케이션 레벨에서 확인할 수 없다는 치명적인 문제를 발견하였음. (JdbcTemplate과 같은 다른 방법으로는 조회 가능)
따라서 @SQLDelete
와 @Filter
로 구현 후 Filter 를 설정, 해제하는 방법으로 애플리케이션 레벨에서도 Soft Delete 된 데이터를 조회할 수 있도록 구현하려고 함.
그러나 Hibernate 5에서는 Session과 관련된 버그가 존재해 Repository에서 find 관련 함수(findAll만 정상 작동)에서 정상적으로 필터가 걸리지 않는 문제를 발견함.
Hibernate 6에서는 해당 문제가 해결된 것으로 보여 먼저 Hibernate 버전을 올린 후 작업 할 예정
세부 내용 및 스크린샷
리뷰어
희망 리뷰 완료일
ASAP
체크리스트
연관 이슈
Closes #111 (closed)
Edited by Jisu Yu