관리 메뉴

KorSA

MyBatis Mapper 사용 안하기 (exclude DataSourceAutoConfiguration) 본문

Development Experience/Web

MyBatis Mapper 사용 안하기 (exclude DataSourceAutoConfiguration)

Praiv. 2022. 4. 1. 13:15
320x100

Spring-Web-Application 개발을 진행하면서 회사 공통으로 쓰고 있는 JAR 파일을 첨부하게 되었다.

 

이 JAR 파일에는 우리 개발팀이 공통으로 쓰는 모듈들이 들어가있는데

주로 DB, gRPC, Util 등의 기능들이 포함되어 있다.

 

공통된 기능을 내가 따로 개발할 필요없이 이미 만들어진 것을 가져다 씀으로써

편리함과 DRY(Don't Repeat Yourself) 를 얻었지만 예상 못한 문제가 있었다.

 

바로 MyBatis를 포함한 프로젝트는 어딘가에 Mapper 클래스가 존재해야 한다는 것이었다.

 

헐?

지금 개발하고 있는 Spring-Web-Application은 DB 기능을 사용하지 않는데?

이 Application은 사용자에게 REST API 인터페이스를 제공하고

요청이 들어오면 다른 모듈들에게 gRPC 메시지 형태로 전달만 하는 역할이기 때문에

DB를 직접적으로 접근할 일이 없고 그래서도 안된다.

 

방안을 찾아보니 크게 두 가지가 있는 것 같다.

첫째, Dummy Mapper를 만든다.

하지만 이 방식은 불필요한 클래스를 만들기 때문에 마음에 들지 않는다.

 

그래서 대망의 두번째, Spring Boot의 DatasourceAutoConfiguration 속성을 끈다.(exclude)

방법은 간단하다.

Spring-Web-Application의 Main 클래스 위에 Annotation 하나만 붙이면 된다.

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class MainApplication {
	public static void main(String[] args) { SpringApplication.run(MainApplication.class, args); }
}

 

 

 

728x90
728x90
Comments