SpringBoot底层原理----配置优先级/Bean管理/springboot原理

 配置优先级

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第1张图片SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第2张图片

最终得到以下配置优先级:(从低到高)

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第3张图片

Bean管理

获取bean

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第4张图片    SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第5张图片

bean作用域

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第6张图片

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第7张图片

第三方bean

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第8张图片

Springboot原理

起步依赖

原理就是依赖传递-通过引入web依赖将所有必要的都同时引入

自动配置--面试高频题目

即:在pom文件中引入依赖后,他是如何自动配置给IOC容器的

springboot采用第四种方式

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第9张图片

自动配置--源码分析

首先从该注解开始追踪:

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第10张图片

 这个注解是springboot中最重要的注解,由以下三个注解组成

再来看其中第三个注解

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第11张图片

这个@Import注解中实现了一个方法

String [] selectImports(...)

该数组封装的是要导入springIOC容器的类的全类名,告诉IOC哪些需要他管理

该方法加载了两个文件

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第12张图片

第一个是新版自动配置文件,3.0版本以后会删除第二个老版本的

另一个自动配置常用注解:

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第13张图片

举例:只有当前项目中含有此()中的类时才会把当前注解的类加入IOC容器当中

其他Conditional注解也很类似,都是要求满足某某情况下,才将当前类注入IOC容器

这使得springboot很智能,他会自动判断当前环境下什么东西需要他来配置,而你手动配置的他便不会配置.

自动配置--自定义starter(起步依赖)

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第14张图片

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第15张图片

Web后端开发总结

现在开发基本都基于三层架构->如果我们要使用通用方法去处理一些共性的请求,那么我们可以使用拦截器.过滤器

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第16张图片

SpringBoot底层原理----配置优先级/Bean管理/springboot原理_第17张图片

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