SpringIOC和AOP概念原理

2023-10-27

springIOC概念和原理:
控制反转,把对象创建和对象之间的调用过程,交给Spring进行管理
使用IOC目的:为了耦合度降低
IOC思想是基于IOC容器完成,IOC容器底层就是对象工厂。
Spring提供了IOC容器2中实现方式:(俩个接口)
BeanFactory:IOC容器基本实现,是Spring内部使用的一个使用接口,不提供开发人员使用 。
加载配置文件的时候不会创建对象,在获取对象(使用)才去创建对象
ApplicationContext:BeanFactory接口的一个子接口,提供更多更强大的功能,一般有开发人员进行使用。
在这里插入图片描述
IOC底层原理
在这里插入图片描述
在这里插入图片描述
FileSystemXmlApplicationContext是一路径的来进行解析的在这里插入图片描述
ClassPathXmlApplicationContext是用路径来解析的
在这里插入图片描述
AOP底层原理
AOP底层使用动态代理
俩种情况动态代理
第一种是接口情况,使用JDK动态代理
创建接口实现类代理对象,增强类的方法。
IOC操作Bean管理(基于XML方式)
如:
在这里插入图片描述

在Spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象创建
在bean标签有很多属性,比如id属性唯一标识,class属性是类全文路径
创建对象时候,默认也是执行无参构造器方法完成对象 创建
在这里插入图片描述第二种情况没有接口情况,使用CGLIB动态代理
创建子类的代理对象,增强类的方法。
在这里插入图片描述
JDK动态代理使用Proxy类里面的方法创建代理对象
调用Proxy里面的new ProxyInstance方法
方法中有是哪个参数 :
类加载器 增强方法所在的类,这个类实现的接口,支持多个接口 实现这个接口InvocationHandler,创建代理对象,写增强的方法

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SpringIOC和AOP概念原理 的相关文章

随机推荐

  • 锁升级

    synchronized锁升级机制 普通对象对象头 Mark Word与锁息息相关 后面的Klass Word与锁无关 不讨论 Mark Word结构 public class Syn static int a 0 public stati
  • 服务器有时候显示美国,美国服务器不通的情况解决方法

    最近有朋友跟小编反馈美国服务器会出现不通的情况 这是什么原因呢 1 大网络环境的的原因 很多时候 我们是使用移动 电信和联通的线路 电信的是最常用的 突然网络不通的话 检查咨询下机房看是不是环境大网络出现什么异常 有的时候 美国得走的是国际
  • QT跨线程连接信号和槽

    对QT的信号和槽理解较为初级 今天通过多次尝试 终于学会了跨线程连接信号和槽 其基本方法如下 1 无参数传递时 1 定义 signal void signal1 2 连接部分写法 connect p class1 类1的指针 SIGNAL
  • WDK学习笔记_基于区块链溯源系统的后端接口开发

    文章目录 摘要 一 fabric go sdk各个封装函数的功能介绍 1 1 查询指定节点通道是否已经存在 函数 QuerySavedChannel 1 2 创建并加入通道 函数 CreateChannel 1 3 查询指定节点的指定链码是
  • Python类中的self到底是干啥的

    Python类中的self到底是干啥的 Python编写类的时候 每个函数参数第一个参数都是self 一开始我不管它到底是干嘛的 只知道必须要写上 后来对Python渐渐熟悉了一点 再回头看self的概念 似乎有点弄明白了 首先明确的是se
  • Vue语法(四)

    一 组件的自定义事件 1 一种组件间通信的方式 适用于 strong style color red 子组件 gt 父组件 strong 2 使用场景 A是父组件 B是子组件 B想给A传数据 那么就要在A中给B绑定自定义事件 span st
  • 2021-07-21训练日记upc联通数(思维)

    A 联通数 题目描述 数学高手小G最近发现了一种新型的数 他首先在草稿纸写下任意长度的数字串kkkkkkkkkkk 1 k 9 并在其中间添加加号 且相邻两个加号之间至少含有两个数字k 默认数字串第一个数字前与最后一个数字后也有两个加号 然
  • React+antdPro4+TS(typescript)相关(知识点)踩坑记录

    最近公司新开了项目 是后台管理系统 在技术选型上选择的时候 选择了react 然后整体的框架选择的是antd pro 4 这个脚手架搭建出来的单页面应用 要是想要仔细了解antd pro 可以看一下他的官方文档 antd pro 此次开发整
  • [c#][process]下发单个以及同时多条adb指令

    库 using System Diagnostics private Process cmd process 下发单条adb指令 代码示例 private string GetAdbCommandsArguments string cmds
  • fiddler设置只抓取某个网址的信息

    1 前提 在使用fiddler进行抓包过程中 如果想只抓取某一个地址下的请求 可以如下设置 2 设置 1 打开fiddler 选择过滤器 2 选择仅显示以下主机 3 点击 动作 选择 现在运行筛选器 4 打开百度 输入信息 进行搜索 查看抓
  • 字符分割算法研究

    字符分割 定义 以字符串的形式分割字符 达到将验证码分割的效果 从定位得到的车牌图像中分离出单个字符 包括汉字 字母和数字等 的图像 以便于字符分割 初步了解 行切分 字切分 参考范例 车牌识别 主要算法解析 改进的连通域分割法 版面分割是
  • 线程池基础知识

    1 为什么要使用线程池 线程池用什么用 创建线程和销毁线程的花销是比较大的 这些时间有可能比处理业务的时间还要长 这样频繁的创建线程和销毁线程 再加上业务工作线程 消耗系统资源的时间 可能导致系统资源不足 我们可以把创建和销毁的线程的过程去
  • Linux 将本地文件上传Linux服务器, 即ssh 命令上传本地文件

    利用ssh传输文件 在linux下一般用scp这个命令来通过ssh传输文件 1 从服务器上下载文件scp username servername path filename var www local dir 本地目录 例如scp root
  • supervisor托管配置nginx

    前言 阅读本文档前 请先了解如何安装配置supervisor和nginx 以下是相关学习文档 超全面 CentOS7 安装及配置supervisor CentOS 安装及配置nginx 配置 1 创建supervisor托管配置文件 详细如
  • oracle导库报959,IMP-00003: 遇到 ORACLE 错误 959

    导入前先要建好表空间和用户 建议你导出的时候按用户导出 不要用sys全部导出来还有在导入的时候需要指定导入到哪个用中去 给个操作手顺吧 我今天刚弄完的 1 导出 exp user user dbname owner user file pa
  • opencv之初学

    浅浅地记录一下自己学习opencv的过程吧 我有想毕业之后从事图像处理方面的工作 所以就从现在学起 争取明年秋招时能拿到offer吧 1 下载opencv opencv有很多的版本 我大概在网上搜了一下它的下载过程 需要在Visual St
  • UE4中文本文件配置文件Json文件XML文件的读写

    虚幻引擎中提供了与平台无关的文件读写与访问接口 通过调用 可以完成一些文件的读写 比如文本文件 配置文件 json文件 xml文件等 完成文件读写 首先需要获取文件路径等相关信息 对调用这些操作 我们需要包含头文件PlatformFilem
  • stm32水质检测系统(TDS检测,水温检测,PH检测,wifi上传,上位机显示)

    一 硬件材料清单 1 STM32核心板 2 OLED显示屏 3 PH传感器 4 TDS传感器 5 DS18B02水温传感器 6 ESP8266 二 实现的功能 1 数据的实时检测 2 本地OLED数据实时刷新 3 远程终端上位机数据显示刷新
  • Flask系列 路由系统

    Flask路由系统细分 from flask import Flask app Flask name app route def index return ok if name main app run 从这个简单的代码入口 来剖析一下路由
  • SpringIOC和AOP概念原理

    springIOC概念和原理 控制反转 把对象创建和对象之间的调用过程 交给Spring进行管理 使用IOC目的 为了耦合度降低 IOC思想是基于IOC容器完成 IOC容器底层就是对象工厂 Spring提供了IOC容器2中实现方式 俩个接口