공통 라이브러리를 만드는 스프링 부트 사용 방법
이제 시스템용 공통 메일 서비스를 개발하고 싶습니다.델은 디자인하면서RabbitMQ
생산자와 소비자.소비자측에서, 델은, 델의 IT프로세서(IT)를 개발 및 도입할 수 있습니다.Spring Boot
또는Spring Cloud
어플리케이션입니다만, 생산자측에서는, 이하의 인터페이스와 같은 공통의 메일 클라이언트를 제공해, 다른 시스템에 대한 jar 의존성을 만들고 싶습니다.
interface MailClient {
ListentableFuture send(Message message);
}
단, 스프링 부트 및 스프링 클라우드는 많은 선언적 방법을 사용하고 있으며 애플리케이션 클래스를 사용해야 할 것 같지만 클래스 참조만 원할 뿐 배포는 필요하지 않습니다.나는 그것을 어떻게 구현해야 할지 모른다.
봄 레몬이 이에 대한 좋은 예가 될 것이다.Spring Boot을 사용하며 다른 Spring Boot 어플리케이션에 포함되도록 되어 있습니다.작성 방법은 다음과 같습니다.
- STS의 Spring Boot Starter 마법사를 사용하여 Spring Boot 어플리케이션 생성.
- 생성된 어플리케이션과 테스트 클래스를 삭제.
- 제거된
spring-boot-maven-plugin
예를 들어 pom.xml의 빌드 섹션과 pluginRepository 섹션입니다.(이 섹션이 없으면 pom.xml이 어떻게 표시되는지 참조).
스프링 문서에서는 이 문제를 정확하게 해결하고 스프링 부트를 사용하여 공통 라이브러리를 구현하는 올바른 방법을 보여 줍니다.
https://spring.io/guides/gs/multi-module/
설명서에 기재되어 있는 바와 같이:Spring Boot Maven 플러그인은 사용되지 않지만 Spring Boot 의존관계 관리를 활용할 필요가 있습니다.
저도 귀사와 같은 요구를 가지고 있었기 때문에, 지금까지 다음과 같은 구성으로 다른 프로젝트에서 사용할 수 있는 라이브러리를 구축할 수 있었습니다.
`
<modelVersion>4.0.0</modelVersion>
<groupId>mx.grailscoder</groupId>
<artifactId>library</artifactId>
<version>1.0-SNAPSHOT</version>
<name>My Custom Library built on Spring Boot</name>
<description>Spring Boot Project library</description>
<packaging>jar</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<logentries-appender>RELEASE</logentries-appender>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<skip>true</skip>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
`
중요한 건 내가 그 일을 건너뛰었다는 거야repackage
내 라이브러리에는 메인 클래스가 없었기 때문에 작업을 수행했습니다.mvn install
작업은 실패하지 않습니다.
설명서에 따르면:
Spring Boot을 사용하면 '그냥' 실행할 수 있는 독립 실행형, 운영 등급의 Spring 기반 애플리케이션을 쉽게 만들 수 있습니다.
그러나 Spring Boot가 모든 상황에 적합한 것은 아닙니다.라이브러리를 만들고 싶은 경우 항아리를 작성하여 회사의 저장소에 저장하는 일반 스프링 프로젝트를 만들 수 있습니다.
언급URL : https://stackoverflow.com/questions/32696080/how-to-use-spring-boot-making-a-common-library
'source' 카테고리의 다른 글
한 컬렉션에서 다른 컬렉션으로 문서를 옮기다 (0) | 2023.03.28 |
---|---|
AngularJS $watch vs $watch Collection: 어떤 것이 퍼포먼스에 더 좋습니까? (0) | 2023.03.28 |
AWS EFS의 성능 저하 (0) | 2023.03.28 |
mongoDb에서 인덱스로 어레이 요소를 삭제하려면 어떻게 해야 합니까? (0) | 2023.03.28 |
Android에서 React Native가 빌드 도구를 찾지 못했습니다. (0) | 2023.03.28 |