Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • Linux

  • 数据结构与算法

  • 算法设计与分析

  • Java

  • Python

  • 设计模式

  • 计算机网络

  • Spring笔记

    • Spring概述
    • IOC的概念作用
      • 程序耦合
      • 控制反转
      • spring 中工厂的类结构图
        • BeanFactory 和 ApplicationContext 的区别
        • ApplicationContext实现类
        • ClassPathXmlApplicationContext
        • FileSyetemXmlApplicationContext
        • AnnotationConfigApplicationContext
    • bean标签
    • 基于XML创建bean对象
    • 基于XML的依赖注入
    • 基于注解创建bean对象
    • 基于注解的依赖注入
    • 其他注解
    • AOP
  • SpringMVC笔记

  • SpringBoot笔记

  • SpringSecurity

  • Elasticsearch笔记

  • RabbitMQ笔记

  • Docker笔记

  • MySQL

  • Redis

  • Mybatis

  • MybatisPlus

  • Nginx

  • Kubernetes笔记

  • Git

  • Software

  • 微服务笔记

  • bug

  • BackEndNotes
  • Spring笔记
Geeks_Z
2023-01-15
目录

IOC的概念作用

IOC的概念作用

程序耦合

耦合:程序间的依赖关系,包括:类之间的依赖和方法间的依赖

解耦:实际开发中应该做到:编译期不依赖,运行时才依赖。

解耦的思路:

  •  第一步:使用反射来创建对象,而避免使用new关键字。
    
  •  第二步:通过读取配置文件来获取要创建的对象全限定类名
    

控制反转

在应用加载时,创建一个 Map,用于存放三层对象。我们把这个 map 称之为容器。

工厂就是负责给我们从容器中获取指定对象的类。这时候我们获取对象的方式发生了改变。

image-20220203085630156

spring 中工厂的类结构图

image-20220207115432678 image-20220207115448592

BeanFactory 和 ApplicationContext 的区别

  • ApplicationContext:子接口。它在创建核心容器时,创建对象采取的策略是采用立即加载的方式,也就是说,只要一读取完配置文件就马上创建配置文件中配置的对象
    • 单例对象适用
    • 开发中常采用此接口
  • BeanFactory: 顶层接口。它在构建核心容器时,创建对象的策略是采用延迟加载的方式,什么时候获取 id 对象了,什么时候就创建对象。
    • 多例对象适用

ApplicationContext实现类

ClassPathXmlApplicationContext

它可以加载路径下的配置文件,要求配置文件必须在路径下,否则加载不了(配置文件所在的目录必须要在IDEA中设置为任何类型的目录但是一般设置为Resource类型的目录)

ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
1
FileSyetemXmlApplicationContext

它可以加载磁盘下任意路径下的配置文件(必须有访问权限)

加载方式如下:

ApplicationContext ac = new FileSystemXmlApplicationContex("C:\\user\\greyson\\...")
1
AnnotationConfigApplicationContext

它是用于读取注解创建容器的

上次更新: 2024/03/29, 08:56:31
Spring概述
bean标签

← Spring概述 bean标签→

最近更新
01
并行训练
03-29
02
tensor维度转换
03-26
03
ResNet源码解读
03-23
更多文章>
Theme by Vdoing | Copyright © 2022-2024 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式