想要了解springboot底层原理必须要先知道springboot是什么?作用是什么
SpringBoot是一个基于spring的快速开发框架,简化了spring。启动快,开发时方便,可以快速整合第三方依赖,解决了架包版本冲突
1.约定大于配置
在开发的时候,spring中90%的配置都一样,只有一些特殊的配置不一样,所以springboot做了优化,springboot有通用的配置,不需要再手动的去进行繁琐的配置。
----springboot 默认有 resources 文件夹存放配置文件
----springboot 默认打包方式为 jar
----springboot默认提供 application.properties/yml 文件用来配置
----此特性, 帮助程序猿减负, 减少了大量的配置.
2.内嵌Tomcat或Jetty等Servlet容器
spring-boot-starter-web 中默认包含 spring mvc 相关依赖以及内置的 tomcat 容器,使 得构建一个 web 应用更加简单
3.绝对没有代码生成,不需要XML配置
springboot简化了spring不需要xml配置文件,只使用了主配置类,springboot也可以在类中通过注解的方式将类注入到spring IoC容器中
4.快速的将一些常用的第三方框架整合
springboot通过maven子父依赖关系来快速整合依赖
springboot 通过引用spring-boot-starter-web依赖,整合spingMVC框架。只需要引用一个jar包,就可以通过maven继承的方式引用到spring-aop,spring-beans,spring-core,spring-web等相关依赖。
我们开发每一个springboot项目都需要一个主启动类
package com.wh.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
springboot主启动类中有一个 @SpringBootApplication 注解,和包含一个 SpringApplication.run类定义的main方法
@SpringBootApplication 注解
ctrl+鼠标左键点进去@SpringBootApplication,可以看到
@SpringBootApplication注解是Spring Boot的核心注解,它其实是一个复合注解(在springboot复合注解可以理解为: 一个注解中也有其他的注解 ,而这个复合注解也 拥有其他注解的功能 )
@SpringBootApplication注解中其中三个注解最为重要
@Configuration(@SpringBootConfiguration点开查看发现里面还是应用了@Configuration)
@EnableAutoConfiguration
@ComponentScan
1.@Configuration
在启动类里面标注了@Configuration,意味着它其实也是一个 IoC
容器的配置类,在这个配置类里可以进行注入Bean的操作
图片中的操作相等于spring使用xml配置文件进行注入bean的操作:
//spring使用xml配置文件进行注入bean
2.@ComponentScan
ComponentScan 默认会扫描当前 package 下的的所有加
了@Component 、@Repository、@Service、@Controller的类到 IoC 容器中。
3.@EnableAutoConfiguration
@EnableAutoConfiguration这个注解在springboot中非常重要
@EnableAutoConfiguration是一个复合注解,其中的@Import很重要
@EnableAutoConfiguration是借助@Import的帮助,将所有符合自动配置条件的bean定义加载到IoC容器.
@EnableAutoConfiguration会根据类路径中的jar依赖为项目进行自动配置,如:添加了spring-boot-starter-web依赖,会自动添加Tomcat和Spring MVC的依赖,Spring Boot会对Tomcat和Spring MVC进行自动配置。
!!在添加了一个依赖后,@EnableAutoConfiguration 会对跟这个依赖相关的东西进行一个配置.
以上就是springboot的大概原理,大家如果想知道spring的相关内容可以去spring官网看一下。