我有時會看到在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」沒有標記「提供」。請幫助我理解這一點。提前致謝。 –