我有时会看到在pom.xml中这些声明如下...springboot嵌入式Tomcat和Tomcat的嵌入,碧玉
<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>
....
,你可以看到,springboot起动器的Web宣布以及 为Tomcat的嵌入-碧玉。
是不是它spring-boot-starter-web已经有一个嵌入式的tomcat?为什么有些开发者仍然声明tomcat-embed-jasper和boot-starter-web?或者有什么理由?
知道了!,也感谢链接。 –
可能值得补充的是,开发人员添加'tomcat-embed-jasper'的原因通常是他们希望他们的嵌入式Tomcat能够编译jsp文件。因为这就是碧玉所做的。 'spring-boot-starter-web'不包含'tomcat-embed-jasper',因此必须单独声明。 这也解释了依赖关系。嵌入式的Tomcat不需要jasper工作,你仍然可以使用servlet或其他web过滤器。但当然,Jasper需要一个容器来编译jsp文件。 – Fencer
谢谢你的回答,但我遵循你提到的层次结构,但对我来说,“tomcat-embed-jasper”没有标记“提供”。请帮助我理解这一点。提前致谢。 –