Springboot起步依赖、自动配置、启动类
(内置服务器,...)。我们在启动 SpringBoot 程序时既没有使用本地的 tomcat 也没有使用 tomcat 插件,而是使用 SpringBoot 内置的服务器。原始 Spring 环境搭建和开发存在以下问题:配置繁琐、依赖设置繁琐。这个是用来解决 Spring 程序依赖设置繁琐的问题。这个是用来解决 Spring 程序配置繁琐的问题。
原始 Spring 环境搭建和开发存在以下问题:配置繁琐、依赖设置繁琐
SpringBoot 程序优点恰巧就是针对 Spring 的缺点:
自动配置。这个是用来解决 Spring 程序配置繁琐的问题
起步依赖。这个是用来解决 Spring 程序依赖设置繁琐的问题
辅助功能(内置服务器,...)。我们在启动 SpringBoot 程序时既没有使用本地的 tomcat 也没有使用 tomcat 插件,而是使用 SpringBoot 内置的服务器。
- 自动配置
根据你项目里引入的依赖、以及你配置的相关属性,Spring Boot 会自动为你创建好一些常用的 Bean,从而“零配置”或“极少配置”就能让某个功能跑起来。
比如:
- 你在 pom.xml 加了 spring-boot-starter-web
- 不需要手动写 @EnableWebMvc、不需要手动配置 DispatcherServlet、不需要配置 Tomcat
- 启动应用后,Spring Boot 自动就给你配好了这些,你的 Controller 就能直接接收 HTTP 请求。
- 起步依赖
定义:针对某个特定功能(如 Web、数据访问、安全等),预先定义好的一组依赖项(Maven/Gradle 坐标) 的集合。你只需要添加这一个 Starter 依赖,它就会通过 Maven/Gradle 的传递依赖机制,自动引入该功能所需的所有其他库,同时 Spring Boot 还会提供自动配置(AutoConfiguration)来让这些库开箱即用。
我们使用 Spring Initializr 方式创建的 Maven 工程的 pom.xml 配置文件中自动生成了很多包含 starter 的依赖, 这些依赖就是起步依赖,如下图:

- 探索父工程
从上面的文件中可以看到指定了一个父工程,我们进入到父工程,发现父工程中又指定了一个父工程,如下图所示

再进入到该父工程中,在该工程中我们可以看到配置内容结构如下图所示

上图中的 properties 标签中定义了各个技术软件依赖的版本,避免了我们在使用不同软件技术时考虑版本的兼容问题。在 properties 中我们找 servlet 和 mysql 的版本如下图
![]()
dependencyManagement 标签是进行依赖版本锁定,但是并没有导入对应的依赖;如果我们工程需要那个依赖只需要引入依 赖的 groupid 和 artifactId 不需要定义 version (如发生坐标错误,再指定version(要小心版本冲突))。而 build 标签中也对插件的版本进行了锁定,如下图

- 探索依赖
在我们创建的工程中的 pom.xml 中配置了如下依赖

进入到该依赖,查看 pom.xml 的依赖会发现它引入了如下的依赖

里面的引入了 spring-web 和 spring-webmvc 的依赖,这就是为什么我们的工程中没有依赖这两个包还能正常使用 springMVC 中的注解的原因。 而依赖 spring-boot-starter-tomcat ,从名字基本能确认内部依赖了 tomcat ,所以我们的工程才能正常启动。
结论:以后需要使用技术,只需要引入该技术对应的起步依赖即可
- 小结
Starter:SpringBoot 中常见项目名称,定义了当前项目使用的所有项目坐标,以达到减少依赖配置的目的
Parent:所有 SpringBoot 项目要继承的项目,定义了若干个坐标版本号(依赖管理,而非依赖),以达到减少依赖冲突的目的
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)