我找到了两种为spring boot rest服务应用程序添加依赖项的方法。
方法1:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
方法2:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
上面给出的两种方法都做同样的工作?性能有何不同?
提前致谢
答案 0 :(得分:1)
这些方法之间的区别在于spring-boot-starter-web
包含的依赖项多于spring-boot-starter
和spring-web
。
对于版本1.5.8.RELEASE,它将是:
所有其他东西取决于您的要求。例如,如果您正在开发商业产品,则必须检查所有包含的许可证的传递依赖性。
一般建议是仅使用您需要的功能。不要忘记您仍然可以依赖顶级工件,不包括使用Maven功能所需的部件。
为了提升性能,基本上不应该那么多。区别仅在于Spring(具有顶级工件依赖性)将加载并自动配置一些在代码中实际使用的功能(在类路径扫描期间)。由于同样的原因,启动时间可能略有增加。
希望它有所帮助!
答案 1 :(得分:0)
显然,第二种方法更好,即使用springboot starter pom。
我说的原因如下: -
它允许zero configuration
或auto configuration
,即默认情况下会向您提供大多数与网络相关的设置。例如默认情况下,将集成tomcat服务器,为您添加springboot依赖项,自动注册转换器和其他与Web相关的依赖项等。请参阅this链接。
您可以利用轻松覆盖,即如果明天您想使用jetty代替tomcat,只需添加jetty依赖项及其配置,现在您可以使用jetty。
您的pom.xml
会更整洁,更具可读性。依赖关系被置于其中并从起始poms中选取。
易于兼容性管理。默认情况下,spring-boot会选择starter parent
的版本。因此,您可以放心,所有兼容的依赖项都将作为mvn依赖项的一部分下载,如果您特别想升级其中任何一种,那么。但是这样可以通过更改springboot starter parent的版本来升级到兼容的依赖项(注意:您也可以使用依赖项管理来代替启动父pom。请参阅this链接)。
性能方面会有一个权衡,因为默认情况下springboot会下载比最初所需的最小依赖项更多的依赖项。但是随着应用程序开始变得成熟,大多数依赖项都会被使用。