springboot 스타터를 손으로 작성하는 방법은 무엇입니까?

이 기사는 주로 직접 스프링 스타터를 작성하고 코드를 jar 패키지로 오픈 소스하는 방법을 공유합니다.
이름 지정 규칙(나중에 스타터를 사용하여 spring-boot의 이름을 공식적으로 변경하지 않으려면 처음에 spring-boot를 사용하지 마십시오)
공식 명명 형식은 다음과 같습니다. spring-boot-starter-xxx
비공식 명명 형식은 xxx-spring-boot-starter입니다.
프로젝트 데모: gitee: https://gitee.com/jq_di/file-storage

1. 오픈 소스여야 하는 원본 프로젝트(file-storage-core)

예를 들어 파일 스토리지를 캡슐화하고 로컬 디스크, Alibaba Cloud OSS, MinIO, Amazon AWS, Baidu BOS, Huawei Cloud OBS, JD Cloud OOS, Tencent Cloud COS, NetEase NOS 등을 지원하는 프레임워크를 작성합니다. 프로젝트는 springboot 에 의존하지 않습니다 .
필요한 동료들이 springboot 프로젝트에서 빠르게 사용할 수 있도록 이 프레임워크를 오픈 소스로 제공하고 싶은데 가장 좋은 방법은 springboot starter 프로젝트를 제공하는 것입니다.

2. springboot 스타터 프로젝트 추가(file-storage-spring-boot-starter)

1. Pom.xml은 자동 구성 종속성을 추가합니다. 버전이 반드시 프로젝트 X(스타터에 의존하는 프로젝트)와 일치하지 않기 때문에 범위를 제공하도록 설정해야 합니다. 따라서 scope=provided는 프로젝트 X가 자동으로 결정하도록 하는 것입니다. 종속 버전 구성
<의존성>
    <groupId>org.springframework.boot</groupId>
    <artifactId>스프링 부트 자동 구성</artifactId>
    <버전>2.0.5.RELEASE</버전>
    <scope>제공</scope>
</의존성>
2. pom.xml은 file-storage-core의 종속성을 추가합니다. 여기서 범위를 설정할 필요가 없으므로 프로젝트 X가 file-storage-spring-boot-starter에 종속된 후 file-storage-core가 자동으로 추가됩니다. 의존성에
<의존성>
    <groupId>com.jqdi</groupId>
    <artifactId>파일-스토리지-코어</artifactId>
    <버전>1.0.0</버전>
</의존성>
3. FileStorageAutoConfiguration을 추가하여 스프링 빈 생성
4. src/main/resources 아래에 /META-INF/spring.factories를 추가하여 자동 구성을 완료합니다(여기에 springboot의 spi 메커니즘이 있습니다. springboot의 자동 구성에 대해 자세히 알아볼 수 있습니다).
혼란스러운?
질문 1: FileStorageAutoConfiguration에 @Configuration을 추가하지 않아도 괜찮습니까?
답변: 확인
FileStorageAutoConfiguration의 빈은 빈 스캔이 아닌 EnableAutoConfiguration @Import에 의해 수행됩니다. 그런데 이상하게도 업계에서 제공하는 RedisAutoConfiguration, RabbitAutoConfiguration, MybatisAutoConfiguration 등의 오픈 소스 jar는 모두 이 @Configuration 주석을 유지하고 있습니다.
질문 2: spring.factories 구성 파일을 사용하지 않아도 괜찮습니까?
답변: 예, 그러나 일반적으로 권장되지 않습니다.
1) @SpringBootApplication 프로젝트는 루트 디렉토리와 하위 디렉토리를 스캔합니다. 일반적으로 프로젝트 X의 패키지는 오픈 소스 jar 패키지의 패키지와 다릅니다. 동일한 경우 @Configuration의 @Configuration에 따라 FileStorageAutoConfiguration으로 직접 스캔할 수 있습니다. 1.
2) 또는 시작 클래스에 @Import(FileStorageAutoConfiguration.class)를 추가합니다.원리는 spring.factories와 동일합니다.

3. 프로젝트 X의 데모 추가(file-storage-springboot-demo)

1.pom.xml은 file-storage-spring-boot-starter 종속성을 추가합니다.
<의존성>
    <groupId>com.jqdi</groupId>
    <artifactId>file-storage-spring-boot-starter</artifactId>
    <버전>1.0.0</버전>
</의존성>
2. @Autowired 방식으로 파일 저장 기능 사용
어때? 유용하다고 생각되면 주저하지 말고 수집하세요! ! !
첨부: 관련된 코드 디렉토리

Supongo que te gusta

Origin blog.csdn.net/w13528476101/article/details/128997024
Recomendado
Clasificación