Spring启动程序创建选项

Spring启动程序创建选项,spring,spring-boot,spring-mvc,spring-boot-maven-plugin,Spring,Spring Boot,Spring Mvc,Spring Boot Maven Plugin,我看到Spring boot项目以某种方式组织了启动器,即模块中只有pom依赖项,并且是一个单独的项目,其中所有启动器都作为可选依赖项添加 这是一种不同于其他大型项目(如ApacheCamel)的方法。它们具有pom依赖项以及自动配置代码。此外,这些启动器还依赖于其他内部启动器 我的问题是——什么时候我们应该选择一种方法而不是另一种,创建spring启动程序的最佳方法是什么?其中一个的缺点/优点是什么?另外,为什么Spring Boots的人选择用他们的方式组织启动程序,因为POM依赖和自动配置

我看到Spring boot项目以某种方式组织了启动器,即模块中只有pom依赖项,并且是一个单独的项目,其中所有启动器都作为可选依赖项添加

这是一种不同于其他大型项目(如ApacheCamel)的方法。它们具有pom依赖项以及自动配置代码。此外,这些启动器还依赖于其他内部启动器


我的问题是——什么时候我们应该选择一种方法而不是另一种,创建spring启动程序的最佳方法是什么?其中一个的缺点/优点是什么?另外,为什么Spring Boots的人选择用他们的方式组织启动程序,因为POM依赖和自动配置似乎是一种直观的方式?

< P>这是一个很好的问题,有不同的方面需要考虑。 让我们从弹簧靴开始。我们不希望先发球员在任何方面都是强制性的。如果您想为web应用程序设计自己的初学者,或者如果您想自己列出依赖项webmvc+您最喜欢的容器,那么就这样吧。这就是代码不在starter中的主要原因,而不仅仅是。另一个原因是自动配置代码可用,并且可以适应您添加的库。如果是拆分的,则需要添加库和正确的自动配置模块的组合。后者很容易忘记

现在是第三方。我不能为Camel说话,但将自动配置代码与启动程序分离归结为您自动配置的代码是否能够适应可选的依赖项。如果您的用例是关于自动配置库acme的,并且它没有任何可选功能,那么只使用一个模块并使用它将更自然。如果您开始在初学者中添加可选的依赖项,您可能需要重新考虑


如果acme有几种风格、选项或可选功能,那么最好将自动配置分开。这让其他玩家可以使用自动配置模块和他们的选项来制作自己的启动器。在你这方面,你可以制作一个初学者,提供你想要推广的选项。有点像我们用Spring Boover启动网做的那样,将Tomcat作为默认容器。

< P>这是一个很好的问题,有不同的方面需要考虑。

让我们从弹簧靴开始。我们不希望先发球员在任何方面都是强制性的。如果您想为web应用程序设计自己的初学者,或者如果您想自己列出依赖项webmvc+您最喜欢的容器,那么就这样吧。这就是代码不在starter中的主要原因,而不仅仅是。另一个原因是自动配置代码可用,并且可以适应您添加的库。如果是拆分的,则需要添加库和正确的自动配置模块的组合。后者很容易忘记

现在是第三方。我不能为Camel说话,但将自动配置代码与启动程序分离归结为您自动配置的代码是否能够适应可选的依赖项。如果您的用例是关于自动配置库acme的,并且它没有任何可选功能,那么只使用一个模块并使用它将更自然。如果您开始在初学者中添加可选的依赖项,您可能需要重新考虑


如果acme有几种风格、选项或可选功能,那么最好将自动配置分开。这让其他玩家可以使用自动配置模块和他们的选项来制作自己的启动器。在你这方面,你可以制作一个初学者,提供你想要推广的选项。有点像我们对spring boot starter web所做的,它将Tomcat作为默认容器。

感谢您的回答。这有帮助!谢谢你的回答。这有帮助!