spring initializr:spring-boot-starter vs spring-boot-starter-web

时间:2019-01-31 05:15:22

标签: spring spring-boot intellij-idea

我正在尝试在IntellIJ中开发一个基于示例Spring Boot的应用程序。因此,我使用spring Initialzr方法,并在设置过程中进行了默认选择。我最终得到的pom.xml具有以下依赖关系:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
</dependency>

但是我关注的教程如下:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>

那么,有什么区别?我可以同时拥有吗?

3 个答案:

答案 0 :(得分:3)

spring-boot-starter-web包含以下依赖项:

  • spring-boot-starter
  • jackson
  • spring-core
  • spring-mvc
  • spring-boot-starter-tomcat

使用IntelliJ,您可以在项目结构的底部查看工件的依赖性。

鉴于spring-boot-starter是spring-boot-starter-web的依赖项,因此两者都没有用。如果两者都保留,则不会有任何危害,只是不必要。

答案 1 :(得分:2)

春季开机起动提供了核心功能,春天一起为您的应用程序的基本开发和运行时基础设施。如果要在项目中使用诸如spring-mvc之类的Web功能,则需要使用spring-boot-starter-web。但是,如果您使用spring-boot-starter-web,则无需明确提及spring-boot-starter。

答案 2 :(得分:0)

spring-boot-starter本身是spring-boot-starter-web的依赖项。如果仅在应用程序中包含spring-boot-starter依赖项,则将仅获得运行时基础结构以及一些核心功能。因此,对于Web应用程序,您需要包括spring-boot-starter-web,以便可以获取spring-mvc,jackson和spring-boot-starter。 无需同时使用两者。如果您将使用spring-boot-starter-web,那么对于您的应用程序就足够了。但是,同时使用这两种方法不会出错。