一、什么是SpringBoot
Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。简单来说就是SpringBoot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(不知道这样比喻是否合适)。
二、SpringBoot的搭建
1. 选择spring Initializr创建项目 http://start.aliyun.com,删掉原先的https的s
2.填写项目名称
3.选择springboot的版本,如果没有想要的版本,先随便选一个,然后去pom文件中修改
4 勾选需要的模块,比如web lombok等
5.然后点击create进行创建
三、SpringBoot常用注解
1.@SpringBootApplication
@SpringBootApplication注解是 Spring Boot 应用的入口,它包含了 @Configuration、@EnableAutoConfiguration 和 @ComponentScan 三个注解。
2.@Configuration
@Configuration注解是Spring框架中的一个注解,用于标识一个类为配置类,相当于XML配置文件中的<beans>标签。在@Configuration注解的类中,可以使用@Bean注解来定义一个Bean,相当于XML配置文件中的<bean>标签。
3.@EnableAutoConfiguration
@EnableAutoConfiguration是Spring Boot的核心注解之一,它的作用是开启Spring Boot的自动配置功能。在Spring Boot应用中,我们只需要添加这个注解,就可以让Spring Boot自动根据项目中的依赖关系来进行自动配置,无需手动编写大量的配置文件。 @EnableAutoConfiguration注解的实现原理是通过Spring Boot提供的SpringFactoriesLoader机制来实现的。SpringFactoriesLoader会扫描classpath下所有META-INF/spring.factories文件,然后根据文件中定义的配置类来进行自动配置。
4.@ComponentScan
@ComponentScan注解用于自动扫描指定包及其子包下的所有类,并将其注册为Spring容器中的Bean。该注解可以用在@Configuration注解的类中,也可以用在普通的@Component注解的类中。
5.@RequestMapping
用于映射 HTTP 请求路径和方法到控制器的方法上。
6. @GetMapping
用于将HTTP GET请求映射到特定的处理程序方法上。
7.@PostMapping
用于将HTTP POST请求映射到特定的处理方法上。
8.@Autowired
用于自动装配Bean。它可以自动将一个Bean注入到另一个Bean中,无需手动编写代码进行依赖注入。
9. @Service
用于标识一个类为服务层组件。
10.@Controller
用于标识一个类是控制器(Controller)。
11.@ResponseBody
用于将Controller方法返回的对象转换为指定格式的数据,比如JSON、XML等格式,然后将其写入HTTP响应中。
12.@RequestParam
是Spring MVC框架中用于绑定请求参数的注解,它可以将请求参数绑定到方法的参数上。
四、SpringBoot的优势
1.基于Spring4
Spring Boot 继承了原有 Spring 框架的优秀基因,使 Spring 在使用中更加方便快捷。
2.简化编码
在 pom 文件中添加依赖
3.简化配置
内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。
4.简化部署
内置运行容器,无需配置 Tomcat 等 Web 容器,直接运行和部署程序。
5.简化监控
支持更多的监控的指标,可以更好的了解项目的运行情况。
五、SpringBoot自动装配原理
springboot启动时,是依靠启动类的main方法来进行启动的,而main方法中执行的是SpringApplication.run()方法,而SpringApplication.run()方法中会创建spring的容器,并且刷新容器。而在刷新容器的时候就会去解析启动类,然后就会去解析启动类上的@SpringBootApplication注解,而这个注解是个复合注解,这个注解中有一个@EnableAutoConfiguration注解,这个注解就是开启自动配置,这个注解中又有@Import注解引入了一个AutoConfigurationImportSelector这个类,这个类会经过一些核心方法,然后去扫描我们所有jar包下的META-INF下的spring.factories文件,而从这个配置文件中去找key为EnableAutoConfiguration类的全路径的值下面的所有配置都加载,这些配置里面都是有条件注解的,然后这些条件注解会根据你当前的项目依赖的pom以及是否配置了符合这些条件注解的配置来进行装载的。