标签:规则 ora let 结构 产生 文件 注入 对象 客户
写下这个只是想记录一下自己的学习过程,并且提供温故知新的材料。
(一)
首先需要强调的是Beans和.xml配置文件。这两个与Spring很重要的特点IOC(控制反转)和DI(依赖注入)有关。
简单来说,可以将bean看作是一个一个组件。组件整个群体可以有很多种类,但是它们需要遵守统一的调用规则,而Spring的松耦合结构也因此得以成立。
Q:什么是控制反转?
A:将对象的创建细节的工作交给Spring框架,而不是在代码细节中自己写。往常的编程中,类之间的调用可以在代码上很直接地看出来,即需要在调用者中创建、调用被调用者。其中最繁琐的是创建被调用者的时候,一些属性的初始化、重复写。这些细节消耗了程序员的精力,从而降低了对代码的逻辑性功能的注意。而IOC可以有效地将这些属性细节结合到.xml文件或者.properies文件中。在将beans注入的时候,自动装载对象的属性。避免了属性的多写与重复,简化了代码,使其专注与功能逻辑。
(二)
其次是beans的注入方式,比较重要的两个是“设值注入”和“构造函数注入”。
“设值注入”:
使用被调用类中的set()方法,给对象的属性赋值。在.xml文件中标签是<property></property>。
“构造函数注入”:
在类中没有set()方法而有“有参构造函数”,则使用构造函数给属性注入值。在.xml文件中标签是<constructor-arg></constructor-arg>。
两者的主要区别及使用特点:
实体类变量过多的时候,使用set注入;若开发人员想让一些数据成员或资源变成只读或私有,则建议使用构造子注入。
(三)
最后是beans的作用域。
singleton:当一个一个bean的作用域设置成singleton,代表在IOC的容器中只会存在一个共享的bean实例。即在请求bean时,只要id相符合,只会返回同一个bean实例。【容器中只存在该id的bean的唯一实例】
prototype:某个bean的作用域为prototype时,每一次请求该bean(即将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法),都会产生一个新的bean实例。【容器中同时存在多个该bean的实例】(注意:需要在客户端代码中释放任何prototype bean所持有的资源。使用bean的后置处理器,该处理器持有要被清楚的bean的引用)
标签:规则 ora let 结构 产生 文件 注入 对象 客户
原文地址:https://www.cnblogs.com/RuideeChang/p/13843999.html