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

Spring——简介和IOC底层原理

Spring——简介和IOC底层原理

Spring5 框架概述

1、Spring 是轻量级的开源的 JavaEE 框架
2、Spring 可以解决企业应用开发的复杂性
3、Spring 有两个核心部分:IOC 和 Aop
(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理
(2)Aop:面向切面,不修改源代码进行功能增强
4、Spring 特点
(1)方便解耦,简化开发
(2)Aop 编程支持
(3)方便程序测试
(4)方便和其他框架进行整合
(5)方便进行事务操作
(6)降低 API 开发难度
5、本人学习中,选取 Spring 版本 5

IOC(概念和原理)

1、什么是 IOC
(1)控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
(2)使用 IOC 目的:为了耦合度降低

2、IOC 底层原理
xml 解析、工厂模式、反射

在这里插入图片描述

IOC(BeanFactory 接口)

1、IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂。
2、Spring 提供 IOC 容器实现两种方式:(两个接口)。
(1)BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用

  • 加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象。

(2)ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人
员进行使用。

  • 加载配置文件时候就会把在配置文件对象进行创建。

3、ApplicationContext 接口有常用的两个实现类:

ClassPathXmlApplicationContext:它可以加载类路径下的配置文件,要求配置文件必须在类路径下。不在的话,加载不了。(更常用)。
FileSystemXmlApplicationContext:它可以加载磁盘任意路径下的配置文件(必须有访问权限)。

相关文章:

  • 面试必备:《Java 最常见 200+ 面试题全面解析》
  • 安卓毕业设计选题基于Uniapp实现的鲜花购物商城
  • 运维工程师——学习路线技能图谱
  • 集合Set集合详解
  • 金属标记/荧光标记/功能化改性/官能团表面包覆聚苯乙烯微球
  • 猿创征文|一个网站的完整部署流程
  • springCloud(踩坑)springCloud-gateway配合Nacos访问接口404,503
  • 数据格式转换篇---VOC(xml)标注格式转换为YOLOv5(txt)
  • Codeforces Round #816 (Div. 2)
  • 高数---曲线积分
  • uniapp 悬浮球
  • 统计耗时 System.currentTimeMillis()
  • 阿里巴巴java方向笔试题 带详细答案
  • (二)springcloud实战之config配置中心
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • [译]CSS 居中(Center)方法大合集
  • 2017-08-04 前端日报
  • Akka系列(七):Actor持久化之Akka persistence
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • co模块的前端实现
  • C学习-枚举(九)
  • IDEA常用插件整理
  • Kibana配置logstash,报表一体化
  • miaov-React 最佳入门
  • React Transition Group -- Transition 组件
  • React系列之 Redux 架构模式
  • 看域名解析域名安全对SEO的影响
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 如何胜任知名企业的商业数据分析师?
  • 思维导图—你不知道的JavaScript中卷
  • 我从编程教室毕业
  • 用Python写一份独特的元宵节祝福
  • linux 淘宝开源监控工具tsar
  • MyCAT水平分库
  • ​Python 3 新特性:类型注解
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • # Maven错误Error executing Maven
  • $.each()与$(selector).each()
  • (9)STL算法之逆转旋转
  • (Java数据结构)ArrayList
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附源码)ssm码农论坛 毕业设计 231126
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (算法二)滑动窗口
  • (正则)提取页面里的img标签
  • (转)jdk与jre的区别
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net wcf memory gates checking failed
  • .NET 中小心嵌套等待的 Task,它可能会耗尽你线程池的现有资源,出现类似死锁的情况
  • .NET建议使用的大小写命名原则
  • .NET开源项目介绍及资源推荐:数据持久层
  • /bin/rm: 参数列表过长"的解决办法