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

Spring Framework中的IoC容器

控制反转(Inversion of Control, IoC)与面向切面编程(Aspect Oriented Programming, AOP)是Spring Framework中最重要的两个概念,本章会着重介绍前者。

2.1.1什么是IoC容器

使用XML来配置类实例
  1. 定义一个Java Bean类

  2. 在resources文件夹中定义一个beans.xml文件(名字可任意选取)

  3. 在主调类中通过加载这个xml文件来加载Java Bean类实例

    • Resource resource = new ClassPathResource("beans.xml");// 定义配置文件资源类
      DefaultListableBeanFactory factory = new DefaultListableBeanFactory();// 定义容器类
      // BeanFactory factory = new DefaultListableBeanFactory();// 另一种定义容器类方法
      // 以下代码为向容器类中注册一个加载Java Bean的方法类
      BeanDefinitionReader reader = new XmlBeanDefinitionReader(factory);
      // 加载Bean定义文件,从而加载类实例,此处也可直接加载XML文件的路径与文件名的字符串
      reader.loadBeanDefinitions(resource);
      
      Bean bean = factory.getBean("beanId", Bean.class);// 通过Bean的ID来加载类实例
      bean.show();// 调用自定义类中的方法
      
    • 主要流程:

      • 定义一个BeanFactory类的实现类DefaultListableBeanFactory
      • 定义一个可以加载Bean实例的方法类,此处定义一个可以通过XML文件来加载类实例的方法类,其中BeanDefinitionReader是接口(也称其为配置信息读取器)与实现类XmlBeanDefinitionReader,在构造这个实例时,把factory bean做为其参数,也就是把这个方法类注册到容器中
      • 加载XML
      • 从容器中通过bean的ID来加载实例

相关文章:

  • 深度优先搜索(DFS)和广度优先搜索(BFS)——c#实现
  • 如何验证邮件列表的有效性?
  • 从高资源到低资源语言的全覆盖:Manus AI的数据革命与迁移学习策略
  • 计算机组成原理:进位计数制与进制转换
  • #9 【code】实现扩散模型的一个jupyter notebook
  • 二、Visual Studio2022配置OpenGL环境
  • CameraX学习2-关于录像、慢动作录像
  • 【单片机通信技术】STM32 HAL库 SPI主从机通过串口发送数据
  • MySQL表空间碎片原理和解决方案
  • [HTTP协议]应用层协议HTTP从入门到深刻理解并落地部署自己的云服务(2)实操部署
  • 基于PySide6的CATIA零件自动化着色工具开发实践
  • 导入 Excel 规则批量修改或删除 Excel 表格内容
  • 【SegRNN 源码理解】【今天不水文系列】编码器部分理解
  • 云曦春季开学考复现(2025)
  • Linux基础--进程管理
  • 博弈是达到均衡状态的简单理解
  • 【网络】HTTP协议、HTTPS协议
  • PyTorch系列教程:编写高效模型训练流程
  • go的grpc
  • 视觉 Yolov11 环境配置(GPU版)
  • 网站建设电话销售话术模板大全/湖南网站优化
  • 私做网站名电子章/如何在百度上开店铺
  • 上海网站建设 迈若/谷歌搜索引擎官网
  • 小视频制作软件/网络优化seo
  • wordpress首页摘要设置/seo怎样
  • 免费b站推广网站入口2023孩子出牙会发烧吗/职业技能培训网上平台