Bean——IOC(Github上有代码)

源码

https://github.com/cmdch2017/Bean_IOC.git

获取Bean对象

在这里插入图片描述
BeanFactory
在这里插入图片描述

Bean的作用域

在这里插入图片描述

第三方Bean需要用@Bean注解

在这里插入图片描述
比如消息队列项目中,需要用到Json的消息转换器,这是第三方的Bean对象,所以不能用@Component,而要用@Bean
在这里插入图片描述

SpringBoot原理

起步依赖

依赖传递,a依赖b,b依赖c
在这里插入图片描述

自动配置

Springboot的自动配置就是当Spring容器启动后,一些配置类、bean对象就自动存入到了IOC容器中,不用手动配置了
在这里插入图片描述
Springboot采用的是@EnableXXXX注解,分装了@Import注解,导入对应的类

在这里插入图片描述
在这里插入图片描述
自动配置原理是Spring Boot的核心功能之一,它可以根据项目中的配置文件、类路径、环境变量等条件,自动地配置应用程序。通过自动配置,开发人员可以专注于编写业务逻辑,而无需花费时间在繁琐的配置工作中。

总结

Spring Boot的自动配置基于以下原理:

组合注解:@SpringBootConfiguration是一个组合注解,由@ComponentScan、@EnableAutoConfiguration和@SpringBootConfiguration组成。@SpringBootConfiguration与普通@Configuration相比,唯一区别是前者要求整个app中只出现一次@ComponentScan。excludeFilters用于在组件扫描时进行排除,也会排除自动配置类。
自动配置类:@EnableAutoConfiguration是一个组合注解,由@AutoConfigurationPackage、@Import(AutoConfigurationImportSelector.class)等注解组成。@AutoConfigurationPackage用来记住扫描的起始包。@Import(AutoConfigurationImportSelector.class)用来加载META-INF/spring.factories中的自动配置类。
条件判断:Spring底层使用@Conditional注解进行条件判断。根据不同的条件判断,如果满足指定的条件,整个配置类里面的配置就会生效。例如,@ConditionalOnWebApp判断当前应用是否是web应用,如果是,当前配置类生效。
属性绑定:Spring Boot会自动将配置文件中的属性值绑定到相应的Bean属性上。例如,在application.properties文件中配置数据库连接信息,Spring Boot会自动将该属性值绑定到相应的DataSource Bean上。
自动装配:通过Java的反射机制和注解,Spring Boot会自动将配置类中的Bean注入到相应的组件中。例如,在配置类中声明一个DataSource Bean,Spring Boot会自动将其注入到需要使用DataSource的组件中。
总之,Spring Boot的自动配置原理主要基于组合注解、自动配置类、条件判断、属性绑定和自动装配等技术实现。通过这些技术,Spring Boot可以自动化地根据项目中的配置文件、环境变量等条件来配置应用程序,提高了开发效率和可维护性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/122455.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloudGateway--Sentinel限流、熔断降级

目录 一、概览 二、安装Sentinel 三、微服务整合sentinel 四、限流 1、流控模式 ①直接 ②关联 ③链路 2、流控效果 ①快速失败 ②Warm Up ③排队等待 五、熔断降级 1、慢调用比例 2、异常比例 3、异常数 一、概览 SpringCloudGateway是一个基于SpringBoot2.x的…

国外访问学者/博士后留学人员反诈骗指南

访问学者/博士后/联合培养博士人员出国后,对当地环境及政策不熟悉,需要提高防范意识,为此,知识人网小编特整理这篇反诈骗指南,提醒留学人员防微杜渐、未雨绸缪。 近日,多国使馆发布相关提醒:不法…

DAY47 198.打家劫舍 + 213.打家劫舍II + 337.打家劫舍 III

198.打家劫舍 题目要求:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警…

WordPress页脚配置备案号

进入后台管理页面 后台管理页面地址一般是&#xff1a;域名/wp-admin 在指定位置加入代码 点击外观 -> 主题文件编辑器 在右侧的文件中选择 footer.php,[注意&#xff1a;上方的主题需要是你自己选择的对应的主题]在 </footer>标签这一行的上一行中加入代码 <di…

学习在echarts中优化数据视图dataView样式带表格样式,支持复制功能

学习在echarts中优化数据视图dataView样式 带表格样式 toolbox里有个dataView视图模式&#xff0c;里面的数据没有对整&#xff0c;影响展示效果&#xff0c;情形如下&#xff1a; 像这种标题跟数据没有整齐对应上&#xff0c;看起来乱 改问题解决方案为&#xff0c;option 》…

风力等级划分

图片来源于网络

Spark 基础知识点

Spark 基础 本文来自 B站 黑马程序员 - Spark教程 &#xff1a;原地址 什么是Spark 什么是Spark 1.1 定义&#xff1a;Apache Spark是用于大规模数据&#xff08;large-scala data&#xff09;处理的统一&#xff08;unified&#xff09;分析引擎 Spark最早源于一篇论文 Re…

【IP固定】地平线开发板如何实现重启IP地址不变

文章目录 1 背景2 临时解决方案3 真正解决方案 1 背景 重新刷了地平线工具链OE包中BSP20230417的系统镜像&#xff0c;结果只能串口连接&#xff0c;无法实现网口连接&#xff0c;串口连接后&#xff0c;发现eth0和eth1的IP竟然是一样的&#xff0c;如下图所示 还挺少见的。 …

单目标应用:粒子群优化算法(PSO)求解微电网优化MATLAB

一、微网系统运行优化模型 微电网优化模型介绍&#xff1a; 微电网多目标优化调度模型简介_IT猿手的博客-CSDN博客 二、粒子群优化算法&#xff08;PSO&#xff09;求解微电网优化 &#xff08;1&#xff09;部分代码 close all; clear ; clc; global P_load; %电负荷 gl…

低代码平台的探究与分析

目录 1.低代码行业现状 2.产品分析 2.1可视化应用开发 2.2流程管理 2.3特别支持整个平台源码合作 3.架构和技术 3.1技术栈 4.规划和展望 低代码平台&#xff08;Low-code Development Platform&#xff09;是一种让开发者通过拖拽和配置&#xff0c;而非传统的手动编写…

物联网水表有什么弊端吗?

物联网水表作为新一代智能水表&#xff0c;虽然在很大程度上提高了水资源的管理效率&#xff0c;但也存在一定的弊端。在这篇文章中&#xff0c;我们将详细讨论物联网水表的弊端&#xff0c;以帮助大家更全面地了解这一技术。 一、安全隐患 1.数据泄露&#xff1a;物联网水表通…

12.(vue3.x+vite)组件间通信方式之$attrs与$listeners

前端技术社区总目录(订阅之前请先查看该博客) 示例效果 在vue3中的$attrs的变化 $ listeners已被删除合并到$ attrs中。 $ attrs现在包括class和style属性。 也就是说在vue3中$ listeners不存在了。vue2中$listeners是单独存在的。 在vue3 $attrs包括class和style属性, vue…

运动蓝牙耳机哪个品牌好?推荐五款好用的运动耳机

​无论你是赛跑者、自行车手还是健身爱好者&#xff0c;运动耳机绝对是你追求极致、超越自我的最佳搭档。它不仅具备优秀的音质和耐用的性能&#xff0c;更重要的是&#xff0c;它可以激发你的运动激情&#xff0c;让你的运动生活更加充满动力。推荐以下几款不错的运动耳机给大…

网站引流绝技:如何通过外链持续给网站带来高质量流量

做网站的人&#xff0c;不论是写文章还是搞外链&#xff0c;最终都是希望能获得更多的流量。既然是为了搞来流量和收入&#xff0c;你可能还不知道有一种方法既能搞来外链还能带来源源不断的高质量流量。 这个方法我在8年前就已经掌握&#xff0c;而且至今我仍认为它是一种有效…

OSPF下的MGRE实验

一、实验要求 1、R1-R3-R4构建全连的MGRE环境 2、R1-R5-R6建立hub-spoke的MGRE环境&#xff0c;其中R1为中心 3、R1-R3...R6均存在环回网段模拟用户私网&#xff0c;使用OSPF使全网可达 4、其中R2为ISP路由器&#xff0c;仅配置IP地址 二、实验拓扑图 三、实验配置 1、给各路…

iOS如何通过在线状态来监听其他设备登录的状态

前提条件 1、完成 3.9.1 或以上版本 SDK 初始化 2、了解环信即时通讯 IM API 的 使用限制。 3、已联系商务开通在线状态订阅功能 实现方法 你可以通过调用 subscribe 方法订阅自己的在线状态&#xff0c;从而可以监听到其他设备在登录和离线时的回调&#xff0c;示例代码如下…

(六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题

前言 本节内容是关于使用分布式锁解决并发访问“超卖”问题的最终篇&#xff0c;在前面的章节中我们介绍了使用mysql的行锁、乐观锁、悲观锁解决并发访问导致的超卖问题&#xff0c;存在的问题是行锁、乐观锁、悲观锁不太灵活&#xff0c;需要和具体的业务耦合到一起&#xff…

数据结构与算法C语言版学习笔记(4)-栈与队列再回顾

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言&#xff1a;一、栈的定义&#xff1a;栈(stack)是限定仅在表尾进行插入和删除操作的线性表&#xff08;1&#xff09;栈是特殊的线性表&#xff08;2&#xff…

Sui学术研究奖公布,资助研究者探索人工智能、能源市场和区块链游戏

Sui基金会高兴地宣布首轮Sui学术研究奖&#xff08;SARAs&#xff09;的获奖者。SARAs计划提供资助&#xff0c;支持推动Sui区块链技术的研究。学术和研究界对我们的初次征集呈现出大量高质量的提案。 已接受的九个提案涵盖了各种主题&#xff0c;如token经济学、智能合约机制…

Java 设计模式——状态模式

目录 1.概述2.结构3.案例实现3.1.抽象状态类3.2.具体状态类3.3.上下文类3.4.测试 4.优缺点5.使用场景 1.概述 【例】通过按钮来控制一个电梯的状态&#xff0c;电梯有开门状态&#xff0c;关门状态&#xff0c;停止状态&#xff0c;运行状态。每一种状态改变&#xff0c;都有可…