스프링에서 사용할 수 있는 라이브러리를 만들어보자
대학 시절, 저는 개인적인 프로젝트로 라이브러리를 만들고자 했습니다. 이 과정에서 여러 블로그를 참조하며 시행착오를 겪었고, 그 경험은 저에게 많은 것을 가르쳐 주었습니다. 이번 글에서는 그때의 경험을 바탕으로, 라이브러리 생성을 쉽고 자세하게 이해할 수 있도록 안내해드리려 합니다. 그러므로 이번 글은 조금 더 자세하게 작성하였습니다.
본론으로..
Spring Boot의 @AutoConfiguration을 이용한 라이브러리 제작 방법에 대해 알아보겠습니다.
글의 순서는 다음과 같습니다.
- 프로젝트 생성 및 AutoConfiguration 라이브러리 추가
- 메인 코드 작성
- @AutoConfiguration 추가
- Spring이 읽을 수 있는 설정 파일 생성
- 라이브러리 빌드
- 라이브러리 사용
1. 프로젝트 생성 및 AutoConfiguration 라이브러리 추가
첫 단계로, Gradle 프로젝트를 생성합니다. 그 후에 필요한 종속성(dependencies)을 추가하겠습니다. 프로젝트 디렉토리에 있는 'build.gradle' 파일에 다음 코드를 추가하고, IDE 내에서 'gradle refresh'를 실행해주세요.
dependencies {
// AutoConfiguration 라이브러리
implementation 'org.springframework.boot:spring-boot-autoconfigure:3.1.2'
...
}
'gradle refresh' 버튼을 찾지 못한 경우, 프로젝트 경로로 터미널에 들어가서 다음 명령어를 입력하면 됩니다.
$ gradle --refresh-dependencies
원하는 dependency 검색 방법 -> {{ 링크 추가 예정 }}
2. 메인 코드 작성
이제 라이브러리의 메인 코드를 작성해볼 차례입니다. 라이브러리의 이름은 'FuBao'로 정하였고, 'mom' 메서드를 호출하면 '아이바오'라는 문자열이 콘솔에 출력됩니다.
package study;
public class FuBao {
public void mom() {
System.out.println("아이바오");
}
}
이 시점에서 기본적인 로직 작성은 완료되었습니다. 이미 이 코드는 라이브러리로 사용할 수 있을 만큼 충분하지만, 사용자가 'FuBao' 클래스를 등록하는 데 어려움을 겪을 수도 있습니다.
3. @AutoConfiguration 추가
따라서, 사용자의 편의를 위해 @AutoConfiguration을 추가하겠습니다. 이를 위해 'FuBaoAutoConfig'라는 새로운 클래스를 생성합니다. 클래스의 이름은 본인이 원하는대로 변경하셔도 무방합니다.
이 클래스에는 @AutoConfiguration 어노테이션을 추가하고, Spring Bean을 위한 @Bean 어노테이션을 사용하여 'FuBao' 인스턴스를 주입합니다. 이를 통해 'FuBao' 클래스는 자동으로 구성됩니다.
package study;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.context.annotation.Bean;
@AutoConfiguration
public class FuBaoAutoConfig {
@Bean
public FuBao fuBao() {
return new FuBao();
}
}
이로써 모든 것이 거의 완성되었습니다. 마지막 단계만 남았습니다.
4. Spring이 읽을 수 있는 설정 파일 생성
Spring이 우리가 작성한 @AutoConfiguration을 읽을 수 있게 설정 파일을 작성해야 합니다. 'resources' 디렉토리 아래에 다음과 같은 디렉토리와 파일을 생성합니다:
resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
(주의: "org.springframework.boot.autoconfigure.AutoConfiguration.imports"는 파일 이름입니다.)
이 파일에는 우리가 생성한 'FuBaoAutoConfig' 클래스의 위치를 추가합니다. 예를 들어, config 파일이 'fubao/src/main/java/study/FuBaoAutoConfig.java' 경로에 위치해 있다면, 다음과 같이 작성합니다:
study.FuBaoAutoConfig
5. 라이브러리 빌드
마지막으로 FuBao라는 라이브러리를 사용하기 위해서 현재 프로젝트를 build해줍니다.
$ ./gradlew clean build
빌드가 성공하면 fubao/build/libs 디렉토리 안에
fubao-1.0-SNAPSHOT.jar 라는 파일이 생성되었습니다.
6. 라이브러리 사용
이제 이 'fubao-1.0-SNAPSHOT.jar' 파일을 외부 Spring 프로젝트에 추가하면 'FuBao' 라이브러리를 사용할 수 있습니다.
외부 라이브러리 사용 방법 -> {{ 링크 추가 예정 }}
'Spring' 카테고리의 다른 글
스프링 의존성 주입(DI) (4) | 2024.10.30 |
---|---|
유연한 코드 설계: 의존성 주입(DI)과 그 장점 (0) | 2023.08.05 |
ArgumentResolver의 작동 원리: Spring MVC에서 파라미터 처리 흐름과 활용 방법 (0) | 2023.07.31 |
Spring Boot AutoConfiguration: 작동 원리와 성능 최적화 방법 (0) | 2023.07.30 |
스프링 MVC에서 커스텀 ArgumentResolver로 코드 중복 줄이기: @UserCache 구현 예제 (0) | 2023.07.13 |