私は春のブーツを学ぼうとしていますが、2つのオプションがあることに気づきました。
spring-boot-starter-web-ドキュメントによると、Tomcatやweb-mvcなどのフルスタックWeb開発がサポートされます
春ブートスタータートムキャット
#1はTomcatをサポートしているので、なぜ#2を使用するのでしょうか?
違いは何ですか?
ありがとう
#1はTomcatをサポートしているので、なぜ#2を使用するのでしょうか?
spring-boot-starter-web
にはspring-boot-starter-Tomcat
が含まれています。 spring-boot-starter-Tomcat
は、Spring mvcが必要ない場合(spring-boot-starter-web
に含まれる)、単独で使用できる可能性があります。
spring-boot-starter-web
の依存関係の階層は次のとおりです:
違いは何ですか?
spring-boot-starter-web
には、Spring Webの依存関係が含まれています(spring-boot-starter-Tomcat
を含む):
spring-boot-starter
jackson
spring-core
spring-mvc
spring-boot-starter-Tomcat
spring-boot-starter-Tomcat
には、組み込みのTomcatサーバーに関連するすべてが含まれています。
core
el
logging
websocket
Tomcatサーバーが組み込まれていないSpring MVCを使用する場合はどうなりますか?
依存関係から除外するだけです:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-Tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
簡単に言えば、すべてのWebアプリケーションがSpringMVCアプリケーションであるとは限りません。たとえば、代わりにJaxRSを使用したい場合、RestTemplateを使用するクライアントアプリケーションがあり、それらがどのように相互作用するかが好きでも、Spring Bootや組み込みTomcatを使用できないわけではありません。
以下は、spring-boot-starter-Tomcat
を使用し、spring-boot-starter-web
を使用しないアプリケーションの例です。
spring-boot-starter-Tomcat
を使用した春のブーツのシンプルなジャージーアプリケーション
また、Tomcatは、Spring Bootの組み込みサーブレットコンテナの唯一のオプションではないことを覚えておくことが重要です。 jettyを使い始めるのも簡単です。また、spring-boot-starter-Tomcat
を使用すると、すべてを1つのモジュールとして簡単に除外できますが、それらがすべてSpring-Webの一部である場合は、代わりにTomcatライブラリを除外してspring-boot-starter-jersey
を取り込む方が多くなります。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-Tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
このコードを別のSOここの質問からコピーしました。