(javaweb)springboot的底层原理

目录

一.配置优先级

二.Bean的管理

1.获取bean

​编辑​编辑

2.bean作用域

3.第三方bean

三.SpringBoot原理

自动配置原理

原理分析:

conditional:

自动配置案例:(自定义starter分析)

总结


一.配置优先级

//命令行参数的优先级最高

二.Bean的管理

1.获取bean

注入ioc容器对象

bean对象名称--默认对象首字母小写 获取到的对象是object--做一个强转

其中 获取的对象一样--说明ioc容器中的bean对象只有一个

2.bean作用域

spring容器中 bean对象默认是单例的 只有一个实例对象---单例还是多例取决于bean的作用域

//bean的作用域:scope

java 复制代码
@Test
    public void testScope(){
        for (int i = 0; i <10 ; i++) {
            DeptController deptController = applicationContext.getBean(DeptController.class);
            System.out.println(deptController);
        }

    }

3.第三方bean

对于只读的类--就不能用注解直接声明bean

------无法使用

写在了启动类当中--我们要尽量保证启动类的纯粹性--不建议写在启动类当中

单独写一个配置类

三.SpringBoot原理

Spring--目前世界上最流行的java框架 使我们更加容易的构建java项目

springboot之所以使用起来简单快捷:底层提供重要功能(起步依赖 自动配置)

起步依赖:maven的依赖传递

自动配置:

自动配置原理

引入的第三方依赖的bean没有生效(没有被spring的组件扫描到)

//扫不到上面的com.example

此时,仍然较为繁琐

开启第三方依赖的自动配置功能:

就相当于导入了对应的bean和配置类

原理分析:

源码跟踪:

springboot启动类--又称引导类

打开启动类:

用来导入指定的bean或者配置类

ctrl+F-------自动搜索---------两次shift--打开源码

conditional:

条件装配的注解 condition--条件的意思

自动配置案例:(自定义starter分析)

starter--springboot的起步依赖

总结

相关推荐
zybsjn4 分钟前
后端系统做国际化改造,生成多语言包
java·python·c#
南斯拉夫的铁托10 分钟前
labelimg安装及使用指南(yolo)
开发语言·python·yolo
六bring个六34 分钟前
文件系统交互实现
开发语言·c++·qt·交互
Unity官方开发者社区38 分钟前
《Cryptical Path》开发诀窍:像玩游戏一样开发一款类Rogue游戏
java·游戏·玩游戏
jingyu飞鸟39 分钟前
Centos7系统(最小化安装)安装zabbix7版本详细文章、nginx源代码配置、php源代码、mysql-yum安装
开发语言·php
_星辰大海乀41 分钟前
表的设计、聚合函数
java·数据结构·数据库·sql·mysql·数据库开发
dhxhsgrx1 小时前
PYTHON训练营DAY27
开发语言·python
小山菌1 小时前
mac中加载C++动态库文件
开发语言·c++·macos
IT成长史1 小时前
deepseek梳理java高级开发工程师微服务面试题-进阶版
java·spring cloud·微服务
zkmall1 小时前
Java + 鸿蒙双引擎:ZKmall开源商城如何定义下一代B2C商城技术标准?
java·开源·harmonyos