当前位置: 首页 > news >正文

SpringIoc-个人学习笔记

Spring的Ioc、DI、AOP思想

Ioc

        Ioc思想:Inversion of Control,控制反转,在创建Bean的权利反转给第三方

DI

        DI思想:Dependency Injection,依赖注入,强调Bean之间的关系,这种关系由第三方负责去设置

AOP

        AOP思想:Aspect Oriented ProGramming,面向切面编程,功能的横向抽取,主要实现是Proxy


ApplicationContext

        ApplicationContext 称为Spring容器,内部封装了BeanFactory,比BeanFactory功能更丰富更强大,使用

ApplicationContext 进行开发时,xml配置文件的名称习惯写成applicationContext.xml

BeanFactory

         BeanFactory是Spring的早期接口,称为Spring的Bean工厂

 BeanFactory与ApplicationContext的关系

 

1)BeanFactory是Spring的早期接口,称为Spring的Bean工厂,ApplicationContext是后期更高级接口,称之为Spring 容器;
2)ApplicationContext在BeanFactory基础上对功能进行了扩展,例如:监听功能、国际化功能等。BeanFactory的
API更偏向底层,ApplicationContext的API大多数是对这些底层API的封装;
3)Bean创建的主要逻辑和功能都被封装在BeanFactory中,ApplicationContext不仅继承了BeanFactory,而且ApplicationContext内部还维护着BeanFactory的引用,所以,ApplicationContext与BeanFactory既有继承关系,又 有融合关系。
4)Bean的初始化时机不同,原始BeanFactory是在首次调用getBean时才进行Bean的创建,而ApplicationContext则是配置文件加载,容器一创建就将Bean都实例化并初始化好。

BeanFactory的继承体系

 

ApplicationContext的继承体系

        只在Spring基础环境下,即只导入spring-context坐标时,此时ApplicationContext的继承体系

        如果Spring基础环境中加入了其他组件解决方案,如web层解决方案,即导入spring-web坐标,此时 ApplicationContext的继承体系


基于xml的Spring应用 

SpringBean 的配置

 Bean 的实例化配置

        构造方式实例化:底层通过构造方法对Bean进行实例化
  • 无参构造方法实例化
  • 有参构造方法实例化
        工厂方式实例化:底层通过调用自定义的工厂方法对Bean进行实例化
  • 静态工厂方法实例化Bean
  • 实例工厂方法实例化Bean
  • 实现FactoryBean规范延迟实例化Bean

未完 待更新

相关文章:

SpringIoc-个人学习笔记

Spring的Ioc、DI、AOP思想 Ioc Ioc思想:Inversion of Control,控制反转,在创建Bean的权利反转给第三方 DI DI思想:Dependency Injection,依赖注入,强调Bean之间的关系,这种关系由第三方负责去设…...

【一文搞懂泛型】

3.3泛型 3.3.1泛型出现的背景 泛型出现的背景有两点: 第一点是在集合容器中,如果没有指定对应类型的话,那么底层的元素就是object,要对容器中的元素进行存取的时候,取出来的同时需要进行类型转换,如果有…...

概念解析 | 利用MIMO雷达技术实现高性能目标检测的关键技术解析

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:MIMO雷达目标检测技术 参考资料:何子述, 程子扬, 李军, 等. 集中式 MIMO 雷达研究综述[J]. 雷达学报, 2022, 11(5): 805-829. 利用MIMO雷达技术实现高性能目标检测的关键技术解…...

Grafana制作图表-自定义Flink监控图表

简要 有时候我们在官网的Grafana下载的图表是这样的,如下图 #算子的处理时间,就是处理数据的延迟数据抓取,这个的说明看下下面的文章 metrics.latency.interval: 60 metrics.reporter.promgateway.class: org.apache.flink.metrics.prometh…...

【TypeScript】初识TypeScript和变量类型介绍

TypeScript 1,TypeScript是什么?2,类型的缺失带来的影响3,Ts搭建环境-本博主有专门的文章专说明这个4,使用tsc对ts文件进行编译5,TS运行初体验简化Ts运行步骤解决方案1解决方案2(常见) 开始学习…...

阿里云瑶池 PolarDB 开源官网焕新升级上线

导读近日,阿里云开源云原生数据库 PolarDB 官方网站全新升级上线。作为 PolarDB 开源项目与开发者、生态伙伴、用户沟通的平台,将以开放、共享、促进交流为宗旨,打造开放多元的环境,以实现共享共赢的目标。 立即体验全新官网&…...

泡水书为什么不能再出售

近日,京津冀持续强降雨,多家出版机构位于涿州等地的图书库房受到影响。 中图网11日发文称,其位于涿州的仓储中心被洪水淹了,一库房有400多万册的书籍。 网友纷纷在文章下暖心留言:注意人身安全,泡水的书也…...

Mac 执行 .sh命令报错 command not found

使用终端执行.sh命令,可输入: ./FileName.sh如果提示 Permission denied 权限不足,可增加sudo,命令如下: sudo ./FileName.sh如果提示 command not found 可以这样: chmod ux *.sh sudo ./FileName.sh...

postgresql 使用之 存储架构 触摸真实数据的存储结构以及组织形式,存入数据库的数据原来在这里

存储架构 ​专栏内容: postgresql内核源码分析 手写数据库toadb 并发编程 个人主页:我的主页 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 概述 postgresql 数据库服务运行时,数据在磁…...

Node.Js安装与配置教程

目录 1.下载官网 2.选择安装路径 3.添加环境变量 4.验证是否安装成功 5.修改模块下载位置 (1)查看npm默认存放位置 6.在node.js安装目录下,创建两个文件夹 7.修改默认文件夹 8.测试默认位置是否更改成功 9.安装报错解决办法 10.路径未更改成功解决办法 …...

Element-Plus DatePicker获取时间戳

文章目录 0、先上答案1、渔&#xff1f;1-1 Element-Plus 官网1-2 溯源 Day.js 0、先上答案 <!-- 秒 --><el-date-pickerv-model"timeStamp"type"datetime"value-format"X"/><!-- 毫秒 --><el-date-pickerv-model"tim…...

【算法第十五天7.29】513.找树左下角的值 112. 路径总和 106.从中序与后序遍历序列构造二叉树

链接力扣513-找树左下角的值 思路 class Solution {public int findBottomLeftValue(TreeNode root) {Queue<TreeNode> queue new LinkedList<>();queue.offer(root);int res 0;while(!queue.isEmpty()){int size queue.size();for(int i 0; i < size; i)…...

Java thymeleaf bug排查记录

刚学Java 做项目时报了一个错误 一时间看的莫名其妙 EL1008E: Property or field createTime cannot be found on object of type java.util.HashMap - maybe not public or not valid? 随即向上排查至第一个报错&#xff0c;发现是thymeleaf渲染时报错。 Exception proces…...

互感和励磁电感(激磁电感)的关系

互感器&#xff0c;变压器&#xff0c;他们之间有着千丝万缕的联系&#xff0c;自感&#xff0c;互感&#xff0c;激磁电感&#xff0c;漏感、耦合系数、理想互感器、理想变压器&#xff0c;这些东西的概念理解和相互之间的关系式。都搞明白了吗&#xff1f;...

stdexcept和exception,两个头文件的区别?

stdexcept和exception是C标准库中的两个头文件&#xff0c;它们的区别如下&#xff1a; 1. 引用方式&#xff1a;stdexcept是exception的父类&#xff0c;引用时可以通过引用stdexcept来自动引用exception&#xff0c;也可以直接引用exception。 2. 异常处理&#xff1a;std…...

openCV图像的读写操作

文章目录 一、数组下标二、指针 void QuickDemo::pixel_visit_demo(cv::Mat &image) {int w image.cols;int h image.rows;int dim image.channels();for (int row 0; row < h; row){for (int col 0; col < w; col){if (dim 1)//灰度图像{int pv image.at<…...

Android平台GB28181设备接入端如何降低资源占用和性能消耗

背景 我们在做GB28181设备接入模块的时候&#xff0c;考虑到好多设备性能一般&#xff0c;我们一般的设计思路是&#xff0c;先注册设备到平台侧&#xff0c;平台侧发calalog过来&#xff0c;获取设备信息&#xff0c;然后&#xff0c;设备侧和国标平台侧维持心跳&#xff0c;…...

Android Studio安装AI编程助手Github Copilot

csdn原创谢绝转载 简介 文档链接 https://docs.github.com/en/copilot/getting-started-with-github-copilot 它是个很牛B的编程辅助工具&#xff0c;装它&#xff0c;快装它&#xff0e; 支持以下IDE: IntelliJ IDEA (Ultimate, Community, Educational)Android StudioAppC…...

windows部署springboot项目 jar项目 (带日志监听和开机自起脚本)

windows部署springboot项目 jar项目 &#xff08;带日志监听&#xff09; 1.把项目打包成jar包&#xff0c;本例演示打包后的jar文件名为demo.jar ———————————————— 2.需要装好java环境&#xff0c;配置好JAVA_HOME&#xff0c;CLASSPATH&#xff0c;PATH等…...

【数据结构和算法】排序算法

说明&#xff1a;以下排序如无特别说明&#xff0c;都是从小到大升序排序 1. 冒泡排序 核心思想&#xff1a;每个元素与其相邻元素比较&#xff0c;如果前者大于后者则交换&#xff0c;每次循环结束后会将最大值放到最后&#xff0c;像小水泡从底下冒到上面成大水泡一样&…...

AI智能体与Stable Diffusion融合:打造对话式文生图应用实战

1. 项目概述与核心价值最近在GitHub上看到一个挺有意思的项目&#xff0c;叫agent-chat-selfie。光看名字&#xff0c;你可能会觉得这又是一个聊天机器人或者AI对话项目&#xff0c;但它的核心其实在于“Selfie”——自拍。这个项目巧妙地结合了当下流行的AI智能体&#xff08;…...

冒险岛游戏编辑器:Harepacker-resurrected 一站式解决方案完整指南

冒险岛游戏编辑器&#xff1a;Harepacker-resurrected 一站式解决方案完整指南 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 想要个性化定…...

从零到一:ESP8266-12F最小系统板MQTT固件烧录实战

1. 为什么选择ESP8266-12F最小系统板&#xff1f; 很多朋友刚开始接触物联网开发时&#xff0c;都会选择NodeMCU这样的开发板。确实&#xff0c;NodeMCU自带USB转串口芯片&#xff0c;插上电脑就能直接烧录程序&#xff0c;对新手特别友好。但当你真正想把项目做成产品时&#…...

不止VSIN!Cadence PSpice仿真库SOURCE.OLB里还有哪些宝藏信号源?实战对比与选型指南

不止VSIN&#xff01;Cadence PSpice仿真库SOURCE.OLB里还有哪些宝藏信号源&#xff1f;实战对比与选型指南 在电路仿真设计中&#xff0c;信号源的选择往往决定了仿真结果的准确性与实用性。许多工程师对PSpice中的VSIN元件较为熟悉&#xff0c;却忽略了SOURCE.OLB库中其他丰富…...

遥感图像处理实战:用eCognition多尺度分割搞定地物分类(附样本点与特征提取全流程)

遥感图像智能解译实战&#xff1a;eCognition多尺度分割与地物分类全流程解析 清晨的阳光透过窗帘缝隙洒在桌面上&#xff0c;我打开最新接收的卫星影像——这是一片混合了城市建筑、绿地和农田的复杂区域。作为遥感分析师&#xff0c;我们每天面对的都是这样充满信息量的图像&…...

使用Node.js和Taotoken构建一个简单的AI对话服务端

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Node.js和Taotoken构建一个简单的AI对话服务端 基础教程类&#xff0c;面向Node.js后端开发者&#xff0c;讲解如何初始化一个…...

终极Switch游戏安装指南:5分钟掌握Awoo Installer的完整教程

终极Switch游戏安装指南&#xff1a;5分钟掌握Awoo Installer的完整教程 【免费下载链接】Awoo-Installer A No-Bullshit NSP, NSZ, XCI, and XCZ Installer for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/aw/Awoo-Installer 还在为Switch游戏安装而烦…...

书成紫微动律定凤凰驯:抛开网络臆想歪论正视海棠山铁哥的大道凰标之道

——褪去网络流言&#xff0c;正视正统文脉网络世间众说纷纭&#xff0c;流言四起&#xff0c;诸多无根揣测、片面臆想肆意流传。 不少人未曾静心品读深意&#xff0c;仅凭只言片语便妄加评判&#xff0c;或是跟风曲解本意&#xff0c;或是刻意附会杂论&#xff0c;更有甚者凭空…...

AutoGen多角色协作内幕:如何在对话中实现复杂任务的自动分解

AutoGen多角色协作内幕:对话式复杂任务自动分解的底层原理与工程实现 关键词 AutoGen、多智能体协作、任务自动分解、大语言模型对话系统、多角色工作流、LLM编排、工具调用集成 摘要 本文从第一性原理出发,系统拆解微软AutoGen框架中多角色协作下的复杂任务自动分解机制…...

英特尔马来西亚六厂布局:先进封装如何重塑半导体制造与供应链

1. 项目概述&#xff1a;从一则新闻到半导体制造的全球拼图前几天&#xff0c;行业里不少朋友都在转一条消息&#xff0c;说英特尔在马来西亚的封装产能布局又有新动作&#xff0c;计划要搞到六座工厂的规模。乍一看&#xff0c;这好像就是个普通的海外建厂新闻&#xff0c;但如…...