springboot starter(你知道的SpringBoot中常用的starter都有哪些)
本文目录
你知道的SpringBoot中常用的starter都有哪些
1. spring-boot-starter-web :提供 Spring MVC + 嵌入式的 Tomcat 。web开发一整套
2. mybatis-spring-boot-starter :提供 MyBatis持久层操作数据库
3. spring-boot-starter-test:提供完备的测试功能
4. spring-boot-starter-thymeleaf:提供Thymeleaf模板视图整合
5. spring-boot-starter-actuator:提供生产级监控
6. spring-boot-starter-data-jpa :提供 Spring JPA + Hibernate
7. spring-boot-starter-data-redis`:提供 Redis整合能力
8. spring-boot-starter-mail:提供邮件发送给你
如果你对上述常见的starter不了解,我强烈建议你学习一下SpringBoot,去黑马程序员官网视频库看免费视频。
springboot starter的二次封装
1,组件自注入到容器;
2,通过注解方式使用组件功能;
但是starter的使用在很多项目中通常都会配置一些基本相同的功能组件,每次新建项目都是copy一遍。所以比较方便的方式,我们可以封装一下把常用组件放在starter一起。
比如,spring-boot-starter-web通常会带上:
1,内置心跳api,
2,po、dto拷贝
3,统一异常处理,
4,404错误处理,
5,参数验证模块,
6,自定义参数验证数据类型
可能以后还会增加juc功能...
如果这些常用的功能组件都会一起使用,就可以和spring-boot-starter-web封装一起。
自建项目的时候pom只要这一个依赖就够了。
xiaoma-web-starter组件做的时候,pom里加上这些功能的依赖,
心跳api
***隐藏网址***
***隐藏网址***
放到一起:
最后,mvn clean install 就可以了
SpringBoot的Starter机制
我们知道SpringBoot自己在“后台”帮我们配置了很多原本需要我们手动去的东西,至于这个“后台”是啥,就是Starter机制。我们先来看一看常用的Starter启动器,他们都是以spring-boot-starter开头明名的,至于spring-boot这个前缀则被Spring Boot官方保留。
至于Starter机制是如何实现上文说的“自动变速箱”功能,简单说就是通过条件注解来实现的,SpringBoot通过条件注解确定需要加载哪些组件,读取哪些配置,还有一些控制加载顺序的注解。这里我们先来看一些常用的条件注解和控制加载顺序的注解:
这里以一个简单的SpringBoot中的依赖配置文件做说明,只加入最基础的配置。
可以看到有如下几个依赖需要加入:
1)spring-boot-starter-parent,这个是所有SpringBoot工程都需要加入的依赖项,可以说这个是一个“根依赖”,必须要加入,注意这里指定的版本号也会约束其他依赖项,相当于一个最上层的版本配置,这里指定的就是我们常说的SpringBoot的版本。
2)spring-boot-starter-web,这个是Web工程的依赖项,所有的Web程序都要加。
3)spring-boot-configuration-processor,这个是ConfiguaritionProperties的配置,有了它我们的Spring项目中的Jar就会包含上很多meta-data,这些元数据会在开发的时候通过idea给我们很多输入的提示。
可以说这是SpringBoot项目中最重要的配置文件,这里看下关于他的几个核心部分,首先关于它的描述是这样的:
大意是说这个文件是一个提供了通过maven编译的应用的依赖和插件管理一个“父配置文件”。嗯,就理解是管理基础依赖和插件的就可以了。
看他的resource标签,是这样的:
这里指定了资源的导入和导出路径,什么意思?就是你的配置文件配在对应的目录下,框架都会去扫描到读取的,按上面的配置会读src/main/resources目录下的配置文件的内容。比如我们在这里放了如下的配置文件:
这样程序启动的会去读application.properties和application.yml文件里面的配置的。这里要说一下,上面的配置加载是有顺序的,先加yml,yaml ,后加properties里面的配置,这也决定了properties文文件配置的优先级是要高于yaml文件的,或者说相同参数的配置,properties里面的参数会覆盖yaml里面的。
最后看到最上面还有一个parent标签,是这样描述的,这里描述了spring-boot-starter-parent的父依赖配置spring-boot-dependencies:
同样的我们看一看spring-boot-dependencies的描述文件,看看里面的properties标签,是这样:
喔,好多似曾相识的面孔在这里都能见到,比如aspectj,caffeine, dom4j,hikaricp,junit,log4j2, mysql,tomcat等等一些,而且你也看到了,这里帮我们把版本控制也做好了,防止了原来在Spring中我们自己手动引入依赖的时候的经常会发生的版本冲突问题,所谓的约定优于配置在这里就是一个典型的体现场景。
这个配置是web应用的核心配置,有了他不用像Spring再像Spring一样去导SpringMVC相关的依赖了,这里看一下这个文件的内容。
同样的也有一个parent标签指定父依赖spring-boot-starters.
另外dependencies标签指定是一些依赖坐标的打包,包含json,tomcat等等,包含版本控制都做好了。
其中spring-boot-starter的依赖又包含了如下的dependencies,有spring-boot,自动配置,日志,注解,core等等的依赖:
以上可以看到SpringBoot基本上通过spring-boot-starter-parent和spring-boot-starter-web两个配置就把起步依赖需要导入的依赖项把我们需要的依赖给导完了,这也就是SpringBoot的starter机制在依赖配置层的最好体现,实现了所谓约定优于配置。
更多文章:
linux查看端口的命令(Linux查看端口是否被占用的命令是什么)
2026年4月15日 01:20
parameter name(loadrunner怎么参数化设置)
2026年4月15日 00:40
多线程处理器什么意思(cpu低频率、低功耗,多核心,多线程是什么意思)
2026年4月15日 00:20
fscanf读取txt文件字符串(c++怎么读取txt文件中的两段字符串并且存入两个数组)
2026年4月15日 00:00
若变量已正确说明为float类型(X为float型变量,则以下语句)
2026年4月14日 23:40
学pytorch前需要懂python吗(想学深度学习开发,需要提前掌握哪些python知识)
2026年4月14日 23:20
reactive翻译(reactive oxygen species是什么意思)
2026年4月14日 23:00
springboot starter(你知道的SpringBoot中常用的starter都有哪些)
2026年4月14日 22:20




