【Spring IoC 二】

【Spring IoC 二】,第1张

【Spring IoC 二】

目录

一、Spring IoC容器相关概念

客户端对象Spring IoC容器IoC Service ProviderIoC模式 二、Spring IoC容器类型分类

2.1、BeanFactory

2.1.1、概念2.1.2、BeanFactory的对象注册与依赖绑定方式

2.1.2.1、直接编码方式2.1.2.2、XML文件方式2.1.2.3、注解 2.1.3、XML详情2.1.4、各个业务对象(注入对象)相互依赖

2.1.4.1、构造方法注入XML2.1.4.4、setter方法注入XML 2.1.5、bean的scope

2.1.5.1、scope="singleton"2.1.5.2、scope="prototype"

一、Spring IoC容器相关概念 客户端对象

如果对象A需要引用对象B,那么A就是B的客户端对象。

Spring IoC容器

是一个提供IoC支持的轻量级容器,作为轻量级容器还支持IoC功能以外的支持。
容器启动阶段,把bean注册到容器中。
当某个方法通过容器的getBean方法请求某个对象,容器会检查对象是否初始化,然后返回给请求对象。

IoC Service Provider

是一个抽象出来的概念,它可以指代任何将IoC场景中的业务对象绑定到一起的实现方式。它可以是一段代码,也可以是一组相关的类,甚至可以是比较通用的IoC框架或者IoC容器实现。

IoC模式

IoC是一种模式,即使不使用IoC容器开发,只用简单的代码也可以实现IoC模式。

二、Spring IoC容器类型分类 2.1、BeanFactory 2.1.1、概念

基础类型IoC容器,提供完整的IoC服务支持。如果没有特殊指定,默认采用延迟初始化策略( lazy-load)。只有当客户端对象需要访问容器中的某个受管对象的时候,才对该受管对象进行初始化以及依赖注入 *** 作。
既然Spring框架提倡使用POJO,那么把每个业务对象看作一个JavaBean对象

2.1.2、BeanFactory的对象注册与依赖绑定方式 2.1.2.1、直接编码方式
BeanFactory接口:管理Bean的接口,只定义如何访问容器内管理的Bean的方法。(图书馆)
BeanDefinitionRegistry接口:该接口作用是Bean的注册和管理。(图书馆书架)
DefaultListableBeanFactory类:BeanFactory接口和BeanDefinitionRegistry接口的实现类。
BeanDefinition接口:负责保存对象的所有必要信息,对象的属性,构造方法等。当客户端(注册对象)向BeanFactory(IoC容器)请求相应的对象,BeanFactory会通过这些信息为客户端返回一个完备的对象实例。
2.1.2.2、XML文件方式

2.1.2.3、注解
component	英[kəmˈpəʊnənt]
美[kəmˈpoʊnənt]
n.	组成部分; 成分; 部件;

wired
英 [ˈwaɪəd]   美 [ˈwaɪərd]  
adj.
(与计算机系统)联网的, 连线的;(为使坚挺或坚固)内含金属丝的,夹丝的;兴奋的;紧张不安的;迷醉的

autowired
自动装配


@Component  //被注入对象
public class FXNewsProvider {

    //依赖对象,抓取新闻的接口
    @Autowired//告知Spring容器要为当前对象注入哪些依赖对象,指明依赖对象
    private IFXNewsListener newsListener;

    //依赖对象,存储新闻的接口
    @Autowired//告知Spring容器要为当前对象注入哪些依赖对象,指明依赖对象
    private IFXNewsPersister mewsPersister;
}



会到指定的包( package)下面扫描标注有@Component的类,如果找到,则将它们添加到容器进行管理,并根据它们所标注的@Autowired为这些类注入符合条件的依赖对象。

2.1.3、XML详情

       

       
       

       

       

解释:每个业务对象作为个体,与配置文件的元素一 一对应的。
既然Spring框架提倡使用POJO,那么把每个业务对象看作一个JavaBean对象
id:每一个注册到容器的对象唯一标识
name:指定的别名,用逗号隔开
alias:name属性是的id,alias属性是给该id的取别名。
class:每个注册到容器的对象都需要通过元素的class属性指定其类型

2.1.4、各个业务对象(注入对象)相互依赖 2.1.4.1、构造方法注入XML

嵌套

2.1.4.4、setter方法注入XML

嵌套

2.1.5、bean的scope

BeanFactory容器除了有IoC Service Provider的职责,作为轻量级容器还有对象的生命周期管理。
bean定义可以看作是一个模板,容器会根据这个模板来构造对象。但是要根据这个模板构造多少对象实例,又该让这些构造完的对象实例存活多久,则由容器根据bean定义的scope语意来决定。

2.1.5.1、scope=“singleton”

标记为scope="singleton"的对象,在Spring IoC容器只存在一个实例,所有该对象的引用共享这个实例。生命周期是该实例第一被请求(BeanFactory启动),一直存活到容器退出。

2.1.5.2、scope=“prototype”

标记为scope="prototype"的对象,容器在接到该类型的对象的请求的时候,会每次重新生成一个新的对象给请求方。请求方需要自己负责当前返回对象的后继生命周期管理工作。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5718359.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-18

发表评论

登录后才能评论

评论列表(0条)

    保存