nbs0105 / BOOT_CMS star
beom 5 days ago f6d20e8 Spring Boot 3 마이그레이션 보정 및 테스트 통과 UNIX

Spring Boot + JPA 전환 진행 내역#

변경 목적#

  • 기존 전자정부프레임워크(MyBatis 중심) 구조 위에 Spring Boot + JPA 기반을 추가해 점진 전환을 시작했습니다.
  • MariaDB 스키마와 인덱스 정보를 반영해 JPA 엔티티/인덱스 매핑을 진행했습니다.

변경 요약#

  • Spring Boot 1.5.22.RELEASE 기반 구성 추가
  • JPA 엔티티 10종과 리포지토리 10종 신규 생성
  • 테스트용 H2 구성 및 기본 JPA 저장/조회 테스트 추가

상세 변경 사항#

빌드 설정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml
    • spring-boot.versionjava.version 속성 추가
    • spring-boot-dependencies BOM 추가
    • spring-boot-starter-web, spring-boot-starter-data-jpa, spring-boot-starter-tomcat 추가
    • spring-boot-starter-test 추가
    • h2 의존성 test 스코프로 변경
    • 테스트 스킵 해제(skipTests=false)
    • spring-boot-maven-plugin 추가

애플리케이션 부트스트랩#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/BaseCmsApplication.java
    • Spring Boot 진입점 추가
    • WAR 배포를 위한 SpringBootServletInitializer 확장

애플리케이션 설정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/application.yml
    • MariaDB 접속 정보 환경변수 주입 방식 추가
    • JPA 기본 설정(ddl-auto none, open-in-view false)

JPA 엔티티#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtccmmnclcode.java
    • 공통분류코드 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtccmmncode.java
    • 공통코드 엔티티, 인덱스 COMTCCMMNCODE_FK1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtccmmndetailcodeId.java
    • 공통상세코드 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtccmmndetailcode.java
    • 공통상세코드 엔티티, 인덱스 COMTCCMMNDETAILCODE_FK1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnmber.java
    • 회원정보 엔티티, 인덱스 COMTNMBER_IE1, COMTNMBER_IE2 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnauthorinfo.java
    • 권한정보 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnroleinfo.java
    • 롤정보 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnauthorrolerelateId.java
    • 권한롤관계 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnauthorrolerelate.java
    • 권한롤관계 엔티티, 인덱스 COMTNAUTHORROLERELATE_FK2 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnrolesHierarchyId.java
    • 롤 계층구조 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnrolesHierarchy.java
    • 롤 계층구조 엔티티, 인덱스 COMTNROLES_HIERARCHY_FK1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnsiteinfo.java
    • 사이트정보 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnsitemnu.java
    • 사이트메뉴 엔티티, 인덱스 COMTNSITEMNU_IE1, COMTNSITEMNU_IE2 매핑

JPA 리포지토리#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtccmmnclcodeRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtccmmncodeRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtccmmndetailcodeRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnmberRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnauthorinfoRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnroleinfoRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnauthorrolerelateRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnrolesHierarchyRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnsiteinfoRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnsitemnuRepository.java

테스트#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/test/resources/application-test.yml
    • H2 인메모리 DB 설정
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/test/java/com/foxedu/basecms/BaseCmsJpaTest.java
    • 공통분류코드 저장/조회 테스트

남은 작업(요약)#

  • 나머지 테이블 엔티티/리포지토리 생성
  • 관계 매핑(FK) 및 복합키 정교화
  • 관리자 기능별 서비스/컨트롤러 전환
  • MariaDB 실제 연결 기반 통합 테스트

추가 변경(2차)#

JPA 엔티티#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comschulinfo.java
    • 학교정보 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtecopseq.java
    • 시퀀스정보 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbanner.java
    • 배너 엔티티, 인덱스 COMTNBANNER_IE1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbsctgrymaster.java
    • 게시판카테고리마스터 엔티티, 인덱스 COMTNBBSCTGRYMASTER_IE1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbsctgry.java
    • 게시판카테고리 엔티티, 인덱스 COMTNBBSCTGRY_IE1, COMTNBBSCTGRY_IE2 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbsmaster.java
    • 게시판마스터 엔티티, 인덱스 COMTNBBSMASTER_IE1, COMTNBBSMASTER_IE2 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbs.java
    • 게시판 엔티티, 인덱스 COMTNBBS_IE1, COMTNBBS_IE2, COMTNBBS_IE3 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtncomment.java
    • 댓글 엔티티, 인덱스 COMTNCOMMENT_FK1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbssourc.java
    • 게시판소스 엔티티, 인덱스 COMTNBBSSOURC_IE1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbstmplat.java
    • 게시판템플릿 엔티티, 인덱스 COMTNBBSTMPLAT_IE1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnpopupmanage.java
    • 팝업관리 엔티티, 인덱스 COMTNPOPUPMANAGE_IE1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnfile.java
    • 파일속성 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnfiledetailId.java
    • 파일상세정보 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnfiledetail.java
    • 파일상세정보 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnlogininfoId.java
    • 로그인정보 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnlogininfo.java
    • 로그인정보 엔티티, 인덱스 COMTNLOGININFO_IE1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnloginlog.java
    • 로그인로그 엔티티, 인덱스 COMTNLOGINLOG_IE1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtnsitemaincntntsId.java
    • 사이트메인컨텐츠 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnsitemaincntnts.java
    • 사이트메인컨텐츠 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnweblog.java
    • 웹로그 엔티티, 인덱스 COMTNWEBLOG_IE1 매핑
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtsbbssummaryId.java
    • 게시물통계요약 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtsbbssummary.java
    • 게시물통계요약 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtsweblogsummaryId.java
    • 웹로그요약 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtsweblogsummary.java
    • 웹로그요약 엔티티
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/ComtsmlglogsummaryId.java
    • 마일리지로그요약 복합키
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtsmlglogsummary.java
    • 마일리지로그요약 엔티티

JPA 리포지토리#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComschulinfoRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtecopseqRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbannerRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbsctgrymasterRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbsctgryRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbsmasterRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbsRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtncommentRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbssourcRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnbbstmplatRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnpopupmanageRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnfileRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnfiledetailRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnlogininfoRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnloginlogRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnsitemaincntntsRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtnweblogRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtsbbssummaryRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtsweblogsummaryRepository.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/repository/ComtsmlglogsummaryRepository.java

남은 작업(요약)#

  • 나머지 테이블 엔티티/리포지토리 생성
  • FK 관계 매핑 및 복합키 정교화
  • 관리자 기능 서비스/컨트롤러 전환

추가 변경(3차)#

빌드 설정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml
    • Thymeleaf 사용을 위한 spring-boot-starter-thymeleaf 추가
    • Lombok 사용을 위한 lombok 의존성 추가

추가 변경(4차)#

빌드 설정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml
    • Spring Boot 버전을 2.7.18로 변경
    • Java 버전을 17로 변경
    • 컴파일러 설정을 java.version 프로퍼티 기반으로 통일

Lombok 리팩터링#

  • 엔티티 30종에 Lombok 적용(@Getter, @Setter, @NoArgsConstructor)
  • 기존 getter/setter 메서드 제거

적용된 엔티티 예시:

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnbbs.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnmber.java
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/domain/Comtnsiteinfo.java

추가 변경(5차)#

JSP → Thymeleaf 1차 이관(기계적 변환)#

  • WEB-INF/jsp 및 루트 JSP 292개를 Thymeleaf 템플릿으로 변환해 복사
  • 위치: /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates
  • 변환 내용(기본 규칙)
    • JSP 디렉티브/스크립틀릿 제거
    • c:if, c:forEach, c:out, spring:message 일부 변환
    • <html>xmlns:th 추가

주의 사항

  • <form:*>, <spring:*> 일부 태그, 커스텀 태그, 스크립틀릿 로직은 수동 보정 필요
  • 화면 동작 검증은 아직 미완료

Swagger(OpenAPI)#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml
    • springdoc-openapi-ui 추가

추가 변경(6차)#

관리자 화면 수동 보정(1차)#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/egovframework/mng/template/top.html
    • 타임리프 문법으로 재작성
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/egovframework/mng/template/bottom.html
    • 타임리프 문법으로 재작성
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/mng/sym/ccm/CcmCmmnClCodeList.html
    • 공통분류코드 목록 화면 타임리프 수동 변환

컨트롤러-뷰 바인딩 보정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/ccm/web/CcmCmmnClCodeManageController.java
    • 타임리프 페이지네이션 표시용 paginationHtml 모델 추가

Swagger 샘플#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/com/foxedu/basecms/api/SampleApiController.java
    • /api/health 샘플 엔드포인트 추가

추가 변경(7차)#

네이밍 축약 및 URL 통일#

  • 엔티티/리포지토리/복합키 클래스명을 짧은 이름으로 일괄 변경
  • /mng 경로를 /manage로 통일(컨트롤러 매핑, 템플릿 링크, JSP/HTML/JS 내 URL 문자열)
  • 템플릿 디렉터리 구조를 /templates/manage/templates/egovframework/manage로 이동

변경 예시

  • ComtnmberMember
  • ComtnsitemnuMenu
  • ComtnbbsBbs
  • URL: /mng/.../manage/...

추가 변경(8차)#

공통코드 상세/등록 화면 이관#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/CcmCmmnClCodeRegist.html
    • 공통분류코드 등록 화면 타임리프 이관
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/CcmCmmnClCodeModify.html
    • 공통분류코드 수정 화면 타임리프 이관
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/CcmCmmnClCodeDetail.html
    • 공통분류코드 상세 화면 타임리프 이관

추가 변경(9차)#

공통코드 화면 이관#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cca/CcmCmmnCodeList.html
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cca/CcmCmmnCodeRegist.html
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cca/CcmCmmnCodeModify.html
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cca/CcmCmmnCodeDetail.html

공통상세코드 화면 이관#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cde/CcmCmmnDetailCodeList.html
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cde/CcmCmmnDetailCodeRegist.html
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/cde/CcmCmmnDetailCodeModify.html
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/manage/sym/ccm/CcmCmmnDetailCodeDetail.html

팝업 템플릿 보정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/egovframework/manage/template/popTop.html
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/templates/egovframework/manage/template/popBottom.html

컨트롤러 바인딩 보정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/ccm/web/CcmCmmnCodeManageController.java
    • paginationHtml 모델 추가
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/ccm/web/CcmCmmnDetailCodeManageController.java
    • paginationHtml 모델 추가

추가 변경(10차)#

Gradle 전환#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle 추가
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/settings.gradle 추가
  • Gradle Wrapper 추가
    • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/gradlew
    • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/gradle/wrapper/gradle-wrapper.properties
    • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/gradle/wrapper/gradle-wrapper.jar

추가 변경(11차)#

Java 버전 상향#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle
    • Gradle toolchain을 Java 21로 변경
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml
    • java.version을 21로 변경

추가 변경(12차)#

Spring Boot 3 전환#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/pom.xml
    • Spring Boot 버전 3.2.5로 변경
    • Springdoc 의존성 springdoc-openapi-starter-webmvc-ui로 변경
    • JSP/JSTL 의존성 Jakarta 기반으로 변경
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle
    • Spring Boot 플러그인 3.2.5로 변경
    • Springdoc 의존성 springdoc-openapi-starter-webmvc-ui로 변경
    • JSTL 의존성 Jakarta 기반으로 변경

패키지 전환#

  • javax.*jakarta.* 전역 변경(엔티티/컨트롤러 포함)

추가 변경(13차)#

Gradle 의존성 보정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle
    • eGovFrame 저장소를 https://maven.egovframe.go.kr/maven/로 변경
    • okhttp/okio 버전 상향 및 log4jdbc3 제거
    • eGov MVC 의존성에서 spring-modules-validation 제외 처리

추가 변경(14차)#

Spring Boot 3 호환 보정#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/egovframework/spring/context-common.xml
    • 멀티파트 리졸버를 StandardServletMultipartResolver로 교체
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/application.yml
    • 멀티파트 용량 설정 추가 및 주석 한글화
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/cmm/view/AbstractPoiExcelView.java
    • POI 기반 엑셀 뷰 공통 클래스 추가
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/cmm/view/ExcelView.java
    • AbstractPoiExcelView 상속으로 변경
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/cmm/service/ExcelDownloadView.java
    • AbstractPoiExcelView 상속으로 변경
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/front/sym/log/web/EgovWebLogInterceptor.java
    • HandlerInterceptorAdapterHandlerInterceptor 변경
    • /mng 경로 검사 → /manage로 변경
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/cmm/web/EgovBindingInitializer.java
    • initBinder 시그니처를 Spring 6 기준으로 수정
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/org/springmodules/validation/commons/DefaultBeanValidator.java
    • 기존 spring-modules 의존성 대체 구현 추가
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/org/springmodules/validation/commons/DefaultValidatorFactory.java
    • 검증 팩토리 대체 구현 추가
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/resources/egovframework/spring/context-validator.xml
    • 주석 한글화
  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/build.gradle
    • 구버전 Jackson 의존성 제거

테스트 전환#

  • /Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/test/java/com/foxedu/basecms/BaseCmsJpaTest.java
    • JUnit 5로 전환