我是否应该将依赖项 spring-boot-starter 包含到我的自定义 spring 启动程序中?
Should I include the dependency spring-boot-starter into my custom spring boot starter?
如果我创建自定义 spring 引导启动模块,是否需要包含依赖项 spring-boot-starter
?
- 一些初学者将依赖项
spring-boot-starter
添加到其 pom.xml
(spring-boot-starter-web, spring-boot-starter-thymeleaf)
- 其他一些初学者没有 (spring-boot-starter-log4j2, spring-boot-starter-undertow, spring-boot-starter-tomcat)。
是否有理由不将其添加到依赖项中?
如果您的启动器依赖于 spring-boot-starter
,任何仅依赖于您的启动器的应用程序都将具有成为 Spring 启动应用程序所需的所有依赖项。一般来说,这就是您希望启动器的行为方式。
spring-boot-stater-log4j2
、spring-boot-starter-undertow
和 spring-boot-starter-tomcat
略有不同,因为它们不能单独使用。 Spring Boot documentation calls them technical starters。它们旨在与现有启动器一起使用,以更改所使用的基础技术。例如,如果您正在构建 Web 应用程序,您将依赖于 spring-boot-starter-web
。默认情况下,此启动器使用 Tomcat 作为嵌入式容器。如果你想切换到 Undertow,你将排除 spring-boot-starter-tomcat
并在你的 spring-boot-starter-web
依赖项旁边添加对 spring-boot-starter-undertow
的依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- Exclude the Tomcat dependency -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Use Undertow instead -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>
如果我创建自定义 spring 引导启动模块,是否需要包含依赖项 spring-boot-starter
?
- 一些初学者将依赖项
spring-boot-starter
添加到其pom.xml
(spring-boot-starter-web, spring-boot-starter-thymeleaf) - 其他一些初学者没有 (spring-boot-starter-log4j2, spring-boot-starter-undertow, spring-boot-starter-tomcat)。
是否有理由不将其添加到依赖项中?
如果您的启动器依赖于 spring-boot-starter
,任何仅依赖于您的启动器的应用程序都将具有成为 Spring 启动应用程序所需的所有依赖项。一般来说,这就是您希望启动器的行为方式。
spring-boot-stater-log4j2
、spring-boot-starter-undertow
和 spring-boot-starter-tomcat
略有不同,因为它们不能单独使用。 Spring Boot documentation calls them technical starters。它们旨在与现有启动器一起使用,以更改所使用的基础技术。例如,如果您正在构建 Web 应用程序,您将依赖于 spring-boot-starter-web
。默认情况下,此启动器使用 Tomcat 作为嵌入式容器。如果你想切换到 Undertow,你将排除 spring-boot-starter-tomcat
并在你的 spring-boot-starter-web
依赖项旁边添加对 spring-boot-starter-undertow
的依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<!-- Exclude the Tomcat dependency -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Use Undertow instead -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</artifactId>
</dependency>