简单了解Spring IoC相关概念原理

时间:2021-05-19

Spring Ioc是Spring框架的基础,本文会简单的介绍下Spring Ioc。

Sprong Ioc即控制反转,它是一种通过描述(在java中可以是XML或注解)并通过第三方去产生或获取特定对象的方式。

Spring IoC容器

1、Spring IoC容器的设计

Spring IoC容器的设计主要是基于BeanFactory和ApplicationContext这两个接口,其中ApplicationContext是BeanFactory的一个子接口。也就是说,BeanFactory是Spring IoC容器定义的最底层接口,而ApplicationContext是其高级接口之一,因此大部分情况下会使用后者作为Spring IoC容器。

1.1 ClassPathXmlAppLicationContext

首先我们来认识一下ApplicationContext的子类ClassPathXmlAppLicationContext。先创建一个.xml,代码如下:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://.ssm.chapter.pojo.JuiceMaker" init-method="init" destroy-method="myDestroy"> <property name="beverageShop" value="贡茶" /> <property name="source" ref="source" /> </bean>

这里定义了id为JuiceMaker的Bean,其属性init-menth就是自定义的初始化方法,而destroy-method为自定义的销毁方法。下面是测试代码清单:

ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("spring-cfg.xml"); JuiceMaker juiceMaker = (JuiceMaker) ctx.getBean("juiceMaker"); System.out.println(juiceMaker.makeJuice()); ctx.close();

日志如下:

[Source]对象source开始初始化
[Source]对象source实例化完成
[JuiceMaker]调用BeanNameAware接口的setBeanName方法
[JuiceMaker]调用BeanFactoryAware接口的setBeanFactory方法
[JuiceMaker]调用ApplicationContextAware接口的setApplicationContext方法
[JuiceMaker]对象juiceMaker开始初始化
[JuiceMaker]调用InitializingBean接口的afterPropertiesSet方法
[JuiceMaker]执行自定义初始化方法
[JuiceMaker]对象juiceMaker实例化完成
这是一杯由贡茶饮品店,提供的大杯少糖橙汁
[JuiceMaker]调用DisposableBean接口的destroy方法
[JuiceMaker]执行自定义销毁方法

从日志中可以看出,生命周期中的方法都被执行了。也可以看到BeanPostProcessor针对的是全部Bean。我们也可以自定义初始化和销毁Bean的方法。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章