什么是 spring 框架?
Spring是一个支持快速开发Java EE应用程序的框架。它提供了一系列底层容器和基础设施,并可以和大量常用的开源框架无缝集成,可以说是开发Java EE应用程序的必备。
Spring Framework主要包括几个模块:
- 支持IoC和AOP的容器;
- 支持JDBC和ORM的数据访问模块;
- 支持声明式事务的模块;
- 支持基于Servlet的MVC开发;
- 支持基于Reactive的Web开发;
- 以及集成JMS、JavaMail、JMX、缓存等其他模块。
简单来说 spring 提供了一个 容器,每部分的功能被实例化成一个个 组件。然后通过依赖注入 (Dependence Injection) 的方式将组件一个个组装起来。最后形成一个应用。
通过之前的学习可以得知, spring 一共有三种方式声明组件
- 通过 XML 的方式声明组件
- 通过 @Component 注解,然后通过 @ComponentScan 的方式声明组件
- 通过 @Bean注解的方式声明组件
什么是 SpringBoot
Spring Boot是一个基于Spring的套件,它帮我们预组装了Spring的一系列组件,以便以尽可能少的代码和配置来开发基于Spring的Java应用程序。
以汽车为例,如果我们想组装一辆汽车,我们需要发动机、传动、轮胎、底盘、外壳、座椅、内饰等各种部件,然后把它们装配起来。Spring就相当于提供了一系列这样的部件,但是要装好汽车上路,还需要我们自己动手。而Spring Boot则相当于已经帮我们预装好了一辆可以上路的汽车,如果有特殊的要求,例如把发动机从普通款换成涡轮增压款,可以通过修改配置或编写少量代码完成
Spring Boot的目标就是提供一个开箱即用的应用程序架构,我们基于Spring Boot的预置结构继续开发,省时省力。
初始化 spring-boot 项目
初始化项目
打开 https://start.spring.io 。 如下图所示,下载代码,使用 Intellj 打开即可
- 注意: 需要添加 spring-boot-starter-web。 在初始化下载的部分是没有添加的,也会导致启动不成功。
IntellJ 配置
打开以后,可以删除 src 文件夹,然后以module 的形式创建子模块
最后项目结构为
然后在子模块中编写代码。
启动文件

@SpringBootApplication 包含了三个注解
- @SpringBootConfiguration 声明这个类是一个配置类。众所周知,在 spring-mvc 中,如果你要声明一个类为配置类,你需要添加 @Configuration 注解
- @EnableAutoConfiguration: 顾名思义, spring-boot 会自动帮你配置一些他认为你需要用到的组件,这样你就无需自己再声明这些组件
- @ComponentScan:启动组件扫描。这意味着,当你在一个类上添加诸如 @Component / @Service/ @Controller 等注解的时候, spring 会自动发现他们,并把它们实例化成一个组件,并在应用的上下文添加他们。
