一,Springboot是什么
Springboot:它并不是一个新的框架,是在spring的基础上整合了许多框架,简化了spring的很多配置,让程序能过快速,独立的运行起来。
二,Springboot的优点
(1)Springboot 内置有servlet容器,无需打成war包
(2)Springboot 可以直接通过主程序中的main方法运行,无需再部署到tomcat中
(3)简化spring的配置,在springboot中没有xml等相关配置
(4)起步依赖,可以在创建项目的时候直接选择需要的依赖程序加入项目中
(5)自动配置,版本控制。如需添加依赖直接在pom.xml中添加,且添加的依赖程序无需担心jar包直接版本不一致,springboot会自动匹配相应的jar包版本下载下来
(6)约定大于配置,springboot默认的配置文件是在resource下,且配置文件是以applicable-***开头的,编译的类也会在默认的targetment下
三,Springboot的缺点
(1)springboot也是一个微服务架构,但是它里面并没有服务的注册和服务的发现方
(2)如想将传统spring架构的项目改成springboot项目,难度比较大
四,Springboot创建流程
(1)在pom.xml文件中加入springboot依赖的starter
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/>
</parent>
注:加入该starter之后,后续再加其他的starter所涉及到的版本都会被springboot统一管理起来
(2)在pom.xml中添加web项目依赖的starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
(3)在main/java/下创建主程序
至此一个简单的springboot项目就创建好了
五,Springboot原理
(1),程序从main方法开始运行
@SpringBootApplication注解:标注该类为springboot的主程序类
(2),进入@SpringBootApplication注解中
其中 @EnbaleAutoConfiguration 是核心注解。
(3)进入@EnbaleAutoConfiguration注解中
可以看到里面有一个注解@AutoConfigurationPackage ,这个注解会自动扫描问题@ SpringBootApplication标记的主类,在主类所在包或者所在的子包下面找相应的控制类,然后根据相应的注解自动配置相应的项目所需的bean
(4)同时可以看到@import注解,进入该注解里面可以看到里面有个方法是导入所有的自动配置的starter