前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面试题50:SpringBoot中Starter的作用是什么?

面试题50:SpringBoot中Starter的作用是什么?

作者头像
爪哇缪斯
发布2023-05-09 21:45:13
2260
发布2023-05-09 21:45:13
举报
文章被收录于专栏:爪哇缪斯爪哇缪斯

当我们最初接触SpringBoot的时候,映入眼帘的就是各种各样的Starter。当我们利用Spring Initializer创建SpringBoot项目的时候,默认给我们增加了两个Starter的依赖,分别是:spring-boot-starter和spring-boot-starter-test;

那当我们想要进行web开发的时候,还要加入spring-boot-starter-web;

而且,我们回想一下,当学习SpringBoot的时候,第一个例子,通过IDEA创建一个SpringBoot项目之后,我们什么也没有做,直接运行SpringbootDemoApplication(xxxApplication)这个类的main方法,项目就启动起来了。也没有像以往基于web项目一样,去配置tomcat。那项目怎么就神奇的启动起来了呢?原因就在这个Starter里面。

我们来看一下官方文档对Starter的介绍。

通过官方文档里面的介绍,我们了解到,Starter其实就是Spring针对不用的开发场景,给我们提供的“套餐”。这就类似于,我们去KFC吃饭,可能有些同学们是会选择自己喜欢吃的食物去下单,但是,有些同学们对饮食并没有那么挑剔,只是满足我爱吃且能吃饱即可。所以,就像我一样,直接就去点物美价廉的香辣鸡腿堡套餐了。而这个香辣鸡腿堡套餐,就是我们今天要介绍的Starter了。

那么既然Spring官方给我们提供了套餐的选择方式,那么有多少种官方套餐可以供我们选择呢?那么有大概50多种Starter套餐我们可以选择,其中,根据偏应用、产品和技术,分为三大类:

  • Spring Boot application starters
  • Spring Boot production starters
  • Spring Boot technical starters

下面具体的Starter,大家可以参加官方文档中的介绍:

https://docs.spring.io/spring-boot/docs/current/reference/html/using.html#using.build-systems.starters

根据里面的列表,去选择自己所需要的Starter。


那么我们理解了Starter之后,我们以一个web开发场景为例,看看spring-boot-starter-web给我们引入了什么?

代码语言:javascript
复制
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

我们首先引入web的Starter。引入完毕之后,我们发现,陆陆续续的下载了很多jar包,我们通过查看maven依赖,来看看项目现在有哪些jar包被引入了进来:

通过上面的依赖图,我们发现,web的Starter给我们提供了webmvc、web、tomcat和json的能力,那么,也就能够解释为什么我们自己没有去配置tomcat,项目却可以自己跑起来的原因了。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-10-19,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 爪哇缪斯 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com