核心容器讲解

文章介绍了Spring的核心容器,主要包括ApplicationContext的创建方式,如通过类路径或文件系统下的XML配置文件。讨论了Bean的三种获取方式,并阐述了BeanFactory的层次结构及其实现IOC容器的方法。此外,对比了BeanFactory与ApplicationContext在延迟加载上的区别,以及如何配置ApplicationContext实现延迟加载。
摘要由CSDN通过智能技术生成

目录

1、容器

1.1、容器的创建方式

1.2、Bean的三种获取方式

1.3、容器类层次结构

2、核心容器总结

2.1 容器相关

2.2 Bean相关


1、容器

这里所说的核心容器,大家可以把它简单的理解为 ApplicationContext,接下来咱们从以下几个问题入手来学习下容器的相关知识:
  • 如何创建容器?
  • 创建好容器后,如何从容器中获取bean对象?
  • 容器类的层次结构是什么?
  • BeanFactory是什么?
1.1、容器的创建方式

(1)类路径下的XML配置文件

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

(2)文件系统下的XML配置文件

ApplicationContext ctx = new FileSystemXmlApplicationContext("applicationContext.xml");

说明:这种方式虽能实现,但是当项目的位置发生变化后,代码也需要跟着改,耦合度较高,不推荐使用。

1.2、Bean的三种获取方式

方式一:

BookDao bookDao = (BookDao) ctx.getBean("bookDao");

方式二:

BookDao bookDao = ctx.getBean("bookDao",BookDao.class);

方式三:

BookDao bookDao = ctx.getBean(BookDao.class);
1.3、容器类层次结构
(1)在 IDEA 中双击 shift , 输入 BeanFactory

(2)点击进入BeanFactory类,ctrl+h,就能查看到如下结构的层次关系

 

 1.4、BeanFactory的使用

使用 BeanFactory 来创建 IOC 容器的具体实现方式为 :
public class AppForBeanFactory {
    public static void main(String[] args) {
        Resource resources = new ClassPathResource("applicationContext.xml");
        BeanFactory bf = new XmlBeanFactory(resources);
        BookDao bookDao = bf.getBean(BookDao.class);
        bookDao.save();
    }
}
BeanFactory ApplicationContext 之间的区别。如果不去获取bean 对象,会发现:
  • BeanFactory是延迟加载,只有在获取bean对象的时候才会去创建
  • ApplicationContext是立即加载,容器加载的时候就会创建bean对象
  • ApplicationContext要想成为延迟加载,只需要按照如下方式进行配置
<bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl" lazy-init="true"/>

2、核心容器总结

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

2.3 依赖注入相关

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值