小编典典

springboot嵌入式tomcat和tomcat嵌入碧玉

spring-boot

我有时会在pom.xml中看到以下声明…

   <dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
        <scope>provided</scope>
    </dependency>
    ....

如您所见,spring-boot-starter-web和tomcat-embed-jasper都被声明了。

spring-boot-starter-web是否已经具有嵌入式tomcat?为什么有些开发人员仍将bootcat-starter-web和tomcat-
embed-jasper一起声明?还是有什么原因?


阅读 399

收藏
2020-05-30

共1个答案

小编典典

如您所说,spring-boot-starter-web包括spring-boot-starter- tomcat。你可以在这里检查

spring-boot-starter-tomcat包括tomcat-embed- core。你可以在这里检查

但是,似乎tomcat-embed-core不包含tomcat-embed-jasper。实际上,是tomcat-embed- jasper谁在包含依赖项tomcat-embed- core在这里检查

无论如何,tomcat-embed- jasper标记为provided,因此表明您希望JDK或容器在运行时提供依赖项。该作用域仅在编译和测试类路径上可用,并且不可传递。

总之,spring-boot-starter-web包括tomcat嵌入式依赖关系,但不包括jasper嵌入式依赖关系,因此这应该是分别声明它的原因。

另外,请记住,使用Spring IOPlatform作为父级,您可以轻松管理依赖项。

希望能帮助到你,

2020-05-30