SpringBoot原理

1、SpringBoot实现原理

SpringBoot是由自动配置和启动器以及大量注解实现

Stater:stater就是启动器,也就是我们在pom.xml文件中引入的带stater的依赖,springboot框架会根据依赖加载与该启动器有关的所有jar包。而不带stater的依赖不叫启动器
自动配置:SpringBoot会根据用户的stater判断用户要使用的技术,根据JavaConfig进行框架之间的默认整合,比如我们需要使用mybatis,会在pom文件中引入mybatis的启动器,该启动器会加载一个自动配置依赖,该jar中有配置类,该类中写的是一些默认的配置,将该配置类加载到classpath中。如果用户不想使用默认的配置,用户可以在application.properties配置文件中更改。

SpringBoot如何做配置是根据用户引入的stater决定。

2、什么是启动器

因为SpringBoot提供了配置应用程序和框架所需的基本配置,这就是自动配置。
其实SpringBoot就是一个框架库,默认配置很多其他的主流框架可以快速使用。

3、Spring Boot Stater

启动器是一套方便的依赖描述符,他可以放在自己的程序中,只需要导入相关的pom约束
不需要写代码或者配置就可以使用spring和其他的技术

比如:
spring-boot-starter-web
spring-boot-starter-jdbc
spring-boot-starter-thymeleaf

SpringBoot核心注解

SpringBoot的核心注解就是@SpringBootApplication,该注解在主类上,它是一个组合注解,该注解由
@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan

@SpringBootConfiguration:该注解由@Configuration修饰,说明该类是一个配置类相当于一个XML文件。
SpringBoot原理_第1张图片
@EnableAutoConfiguration:开启自动配置。会将所有的配置类加载到classpath中,如果有一些类不想被加载,可以使用exclude或者excludeName两个属性写指定的配置类。
SpringBoot原理_第2张图片
阉割掉spring和mybatis的默认配置

SpringBoot原理_第3张图片

@ComponentScan:开启包扫描,springboot默认开启同包和子包。开启指定的包扫描可以使用以下方式,或者使用@ComponentScan注解实现,建议直接将代码放到day1029springboot包下边。
在这里插入图片描述
约定大于规范,我们使用SpringBoot需要严格按照他的要求进行编程。可能违反一些公司的编码规范。

你可能感兴趣的:(SpringBoot,spring,boot)