본문 바로가기

Issue/Server7

[Spring][MyBatis] 이상한 클래스가 Mapper class가 scan되는 문제 개선 1. 현상멀티 모듈 프로젝트를 진행하면서, 각 모듈에 DB 설정빈을 추가하니 중복 빈 등록 오류가 발생했다.그래서 common 모듈로 공통화를 시키고, DB를 활용하는 모듈에서 common 모듈을 implementation에 사용하는 방식으로 수정하였다.DB 설정 코드를 아래와 같다.그렇게 적용하였더니 아래와 같은 "Invalid bound statement (not found)"라는 mybatis 오류가 발생하였다. 2. 원인여기서 의문인 점은 LoginService는 @Mapper 클래스를 붙이지 않은 interface이다.그리고 실제 scan된 Mapper 클래스를 확인해보니 LoginService가 포함되어 있었던 것이다. 따라서 공식 문서를 확인해보니 아래와 같이 "base-package프로퍼티.. 2025. 5. 31.
[Spring][MyBatis] Multi-Module 프로젝트에서 @MybatisTest 테스트 실행 시 중복 fragment 등록 문제 (XML fragments parsed from previous mappers already contains key) 1. 현상멀티 모듈 프로젝트를 진행하면서, 공통 모듈에 DB 설정코드(빈)을 작성하고 그 외 DB를 활용하는 모듈에서 common 모듈을 implementation에 사용하는 방식으로 개발중이었다.(이전 게시글 참고 -> https://happiestlife.tistory.com/23 ) [Spring][MyBatis] 이상한 클래스가 Mapper class가 scan되는 문제 개선1. 현상멀티 모듈 프로젝트를 진행하면서, 각 모듈에 DB 설정빈을 추가하니 중복 빈 등록 오류가 발생했다.그래서 common 모듈로 공통화를 시키고, DB를 활용하는 모듈에서 common 모듈을 implementationhappiestlife.tistory.com DB를 사용하는 각 모듈에서 자신의 도메인에 맞는 .xml .. 2025. 5. 31.
[Spring Security] 인증 후 인가 SecurityContext 영속성 유지 안됨 문제 1. 현상인증의 영속성을 유지하기 위해서 세션을 활용하려고 하였다.그리고 아래와 같이 https://docs.spring.io/spring-security/reference/servlet/authentication/persistence.html 가이드에 맞게 코드를 작성하였다. 그런데 로그인 이후에 다른 API를 호출하여도 인증의 영속성이 유지되지 않았고 403 Forbidden 오류가 떨어졌다. 2. 원인SecurityContextConfigurer 설정 클래스에서는 기본적으로 개발자가 수동으로 SecurityContext를 저장하도록 설정되어 있다.그렇기 때문에, 각 Request마다 SecurityContext를 저장하는 코드를 작성하지 않아서 영속성이 유지되지 않았던 현상이었다. 3. 해결이 문제.. 2025. 5. 25.
[Spring][Gradle] Could not find method developmentOnly() for arguments [org.springframework.boot:spring-boot-devtools] on object of type 이슈 1. 문제 상황CI 파이프라인 구축 및 실행 중 아래와 같은 오류가 떨어졌다.Could not find method developmentOnly() for arguments [org.springframework.boot:spring-boot-devtools] on object of type 2. 문제점build.gradle 중 plugins에  Spring Boot('org.springframework.boot')의 활성화가 false 처리 되어 있었다.현재 개발 중인 모듈은 특정 어플리케이션의 하위 모듈로써 Spring boot를 비활성화 해 놓았었다. 그런데 아직 전체 어플리케이션이 구축되지 않아, 내부에 임시로 Servlet 및 @SpringBootApplication 클래스를 생성하고 실행시켜서 .. 2024. 12. 1.