当前位置: 首页 > 知识库问答 >
问题:

有什么理由不将小型Spring启动启动器与自动配置放在一起?

程举
2023-03-14

spring-boot使用“starters”来定义项目可能包含的一组库依赖项。这个maven模块,泽西的启动器,例如:
https://github.com/spring-projects/spring-boot/tree/master/spring-boot-starters/spring-boot-starter-jersey

spring-boot使用autoconfigures来实例化和配置starter模块中的类。泽西的自动配置:
https://github.com/spring-projects/spring-boot/blob/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfiguration.java

是否有任何理由不将新的第三方/私人创业者与自动配置放在同一个模块中,而不是像上面的例子那样分散在不同的模块中?

共有1个答案

牧熙云
2023-03-14

这是一个很好的问题,我们在Spring Boot工程团队中讨论过这个问题,但没有得出正确的答案。相关讨论要点:

>

启动器执行不止一个功能,因为它们可以用来激活一些自动配置,但是(更重要的是),它们是一组固执己见的、经过策划的依赖项,可能(并且通常会)超出激活一些自动配置所需的最小值。这基本上是马腾的观点。

Spring靴。接下来(目前是1.3版)很可能会将spring boot自动配置分解为多个模块(例如,可能有一个用于jetty,或者一个用于servlet容器,或者esle)。

当拆分发生时,我们可能会看到一些启动器变得过时(目前谁知道),但我怀疑它们仍然会存在。例如,Spring Cloud有很多未捆绑的自动配置,但仍然有启动器。

对于小型第三方库,我认为没有理由不将初学者和自动配置放在同一位置。我认为在stackoverflow上允许这个线程的唯一理由是,如果可以重新措辞,使问题更加明显。

 类似资料:
  • 我们有一个Spring booter应用程序,它的父级定义为spring-boot-starter-父级。但在我们的项目中,我们有一个父pom,其中定义了分发管理,项目中的所有子模块都继承自它。现在,由于Spring booter应用程序已经继承自spring-boot-starter-父级,并且我不想重复分发管理,我想拥有一个自定义的Spring booter模块,以便能够在其中定义分发管理,然

  • 问题内容: 我一直在研究Spring / Spring MVC应用程序,并且希望添加性能指标。我遇到过Spring Boot Actuator,它看起来是一个不错的解决方案。但是我的应用程序不是Spring Boot应用程序。我的应用程序在传统容器Tomcat 8中运行。 我添加了以下依赖 我创建了以下配置类。 我什至可以按照StackOverflow另一篇文章的建议在每个配置类上添加 问题答案:

  • 我有一个Web应用程序部署到Tomcat的实例中。我希望能够将tomcat配置为在Tomcat本身启动时不自动启动该应用程序。但是,我确实希望启动Tomcat管理器,以便根据需要,我可以手动启动和停止Web应用程序。 我如何说服Tomcat这样工作?

  • 我将为消息实现断路器模式。基本要求是,如果微服务无法将消息发布到发布主题,则应停止接受来自其他 Kafka 主题的消息。当发布主题可用时,微服务应开始接受来自其他 Kafka 主题的消息。 有没有一种方法可以在Spring BootKafka Streams中实现这一点?

  • docker守护进程在我的计算机(Linux/Centos 7)上不再启动了,我强烈怀疑在这种情况下是一个设置为自动重启的容器造成的。如果我手动启动守护进程,我看到的最后一行是“装载容器:启动”,然后它只是挂起。 我想做的是在不启动任何容器的情况下启动守护进程。但我找不到任何选择。在docker中是否有任何选项可以启动守护进程而不将启动容器设置为自动重启?如果没有,是否有一种方法可以手动移除容器,

  • 9.a. 作出您的选择 简介 至此, 您的内核配置编译完毕, 所需的系统配置文件业已填写妥当. 现在要做的是安装一个在您开机时能启动您的内核的程序. 这一程序名为 启动器 (bootloader). 在 x86 体系中, Gentoo 提供了 GRUB 和 LILO 以供选择. 在装上它们两者之一前, 我们想先让您了解如何配置帧缓冲 (当然, 在您想要它的前提下). 帧缓冲让您在 Linux 命令