Spring容器详细介绍

Spring容器

1 Spring核心容器介绍

问题导入

问题:按照Bean名称获取Bean有什么弊端,按照Bean类型获取Bean有什么弊端?

1.1 创建容器
  • 方式一:类路径加载配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
  • 方式二:文件路径加载配置文件
ApplicationContext ctx = new FileSystemXmlApplicationContext("D:\\applicationContext.xml");
  • 加载多个配置文件
ApplicationContext ctx = new ClassPathXmlApplicationContext("bean1.xml", "bean2.xml");
1.2 获取bean对象
  • 方式一:使用bean名称获取

弊端:需要自己强制类型转换

BookDao bookDao = (BookDao) ctx.getBean("bookDao");
  • 方式二:使用bean名称获取并指定类型

弊端:推荐使用

BookDao bookDao = ctx.getBean("bookDao", BookDao.class);
  • 方式三:使用bean类型获取

弊端:如果IOC容器中同类型的Bean对象有多个,此处获取会报错

BookDao bookDao = ctx.getBean(BookDao.class);
1.3 容器类层次结构

在这里插入图片描述

1.4 BeanFactory
  • 类路径加载配置文件
Resource resources = new ClassPathResource("applicationContext.xml");
BeanFactory bf = new XmlBeanFactory(resources);
BookDao bookDao = bf.getBean("bookDao", BookDao.class);
bookDao.save();
  • BeanFactory创建完毕后,所有的Bean均为延迟加载,也就是说我们调用getBean()方法获取Bean对象时才创建Bean对象并返回给我们

2 Spring核心容器总结

2.1 容器相关
  • BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载
  • ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载
  • ApplicationContext接口提供基础的bean操作相关方法,通过其他接口扩展其功能
  • ApplicationContext接口常用初始化类
    • ClassPathXmlApplicationContext(常用)
    • FileSystemXmlApplicationContext
2.2 bean相关

在这里插入图片描述

2.3 依赖注入相关

在这里插入图片描述

相关推荐

  1. c++关联容器详细介绍

    2024-07-15 11:58:01       46 阅读
  2. Vector容器详细介绍

    2024-07-15 11:58:01       44 阅读
  3. Redis的String详细介绍

    2024-07-15 11:58:01       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-15 11:58:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-15 11:58:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-15 11:58:01       58 阅读
  4. Python语言-面向对象

    2024-07-15 11:58:01       69 阅读

热门阅读

  1. 解决PyCharm中的文件格式关联错误:终极指南

    2024-07-15 11:58:01       19 阅读
  2. matplotlib实现RGB图像展示

    2024-07-15 11:58:01       22 阅读
  3. Python 中的循环

    2024-07-15 11:58:01       26 阅读
  4. RabbitMQ

    RabbitMQ

    2024-07-15 11:58:01      25 阅读
  5. CSS 选择器:精通网页样式的基础

    2024-07-15 11:58:01       25 阅读
  6. 数据结构:单向链表

    2024-07-15 11:58:01       19 阅读
  7. 20240715题目

    2024-07-15 11:58:01       20 阅读
  8. 设计模式-简单工厂

    2024-07-15 11:58:01       27 阅读
  9. 快排的3种方式

    2024-07-15 11:58:01       24 阅读