spring——BeanFactory与ApplicationContext接口、bean标签

本文介绍了Spring框架中的BeanFactory和ApplicationContext接口,BeanFactory作为核心接口负责IoC配置,而ApplicationContext提供了更多面向应用的功能,如国际化支持和事件体系。ApplicationContext在启动时会一次性创建所有bean,而BeanFactory则按需加载。此外,文章还讲解了bean标签的配置,包括lazy-init、init-method、destroy-method和scope属性的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

==
BeanFactory接口与ApplicationContext接口


BeanFactory接口:
Bean工厂(org.springframework.beans.factory.BeanFactory)是Spring框架最核心
的接口,提供Ioc配置机制,使管理不同类型的java对象成为可能
ApplicationContext接口:
应用上下文(org.springframework.context.ApplicationContext)建立在BeanFactory基础之上
,提供了更多面向应用的功能,比如国际化支持、框架事件体系,更易于创建实际应用
一般称BeanFactory为IOC容器,ApplicationContext为应用上下文,BeanFactory是Spring框架的基础设施,
面向Spring本身,ApplicationContext面向使用Spring框架的开发者,几乎所有的应用场合都可以直接使用
ApplicationContext而非底层的BeanFactory;
ApplicationContext是由BaenFactory派生而来,
BeanFactory中很多功能需要以编程方式实现,
ApplicaitonContext则主要由配置方式实现

ApplicaitonContext类体系结构,其主要有两个实现类:
ClassPathXmlApplicationContext
    从类路径加载配置文件
FileSystemXmlApplicationContext
    从文件系统加载配置文件
BeanFactory
    采用延迟加载Bean,直到第一次使用getBean()方法获取Bean实例时,
才会创建Bean。   按需加载,运行时出现错误
ApplicationContext
    ApplicationContext在自身被实例化时一次完成所有bean的创建。大多数时候使用ApplicationContext
区别:
在服务启动时ApplicationContext就会检验XML文件的正确性,不会产生运行时bean装配错误
BeanFactory在启动时,不会校验xml文件的正确性,获取bean时,如果装配错误就会产生异常

加载多配置文件的时候:
方式一:
    ApplicationContext app = new ClassPathXmlApplicationContext("applicationcontext-*.xml")
方式二:
    ApplicationContext app = new ClassPathXmlApplicationContext(new String[]{"applicationcontext-
1.xml","applicationcontext-2.xml")

介绍bean标签:


控制如何实例化对象
a、lazy-init属性(实例化阶段)
    true:懒加载
    false:立即加载
    <beans>里default-lazy-init:当前配置文件里的所有bean对象都设置为懒加载。
b、init-method属性
    用于设置对象 初始化阶段 调用的方法。
c、destory-method属性
    用于设置对象 销毁阶段 调用的方法。
d、Scope属性可取值    作用域属性
singleton:默认值,单例的,使用ApplicationContext启动时实例化对象
prototype:原型,每次调用时实例化一次
request:每次请求时实例化对象
session:每次产生session(HttpSession)时实例化
application:
global session
单例设计模式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值