解析:
参考答案:设置注入的优点:(1)与传统的 JavaBean 的写法更相似,程序开发人员更容易
了解和接受。通过 setter 方法设定依赖关系显得更加直观、自然。(2)对于有复杂的依赖关
系,如果采用构造注入,会导致构造器过于臃肿,难以阅读。Spring 在创建 bean 实例时,
需要同时实例化其依赖的全部实例,因而导致性能的下降,而使用设值注入能够解决这些问
题。(3)尤其是某些属性可选的情况下,多参数的构造器更加笨重。
解析:
参考答案:构造注入的优点:(1)可以在构造器中决定依赖关系的注入顺序,优先依赖的优
先注入。(2)对于依赖关系无须变化的 bean,构造注入更加有用处。因为没有 setter 方法,
所有的依赖关系全部在构造器内设定,因此,无须担心后续的代码对依赖关系产生破坏。(3)
依赖关系只能在构造器中设定,则只有组建的创建者才能改变组建的依赖关系。对组建的调
用者而言,组建内部的依赖关系完全透明,更符合高内聚的原则。
解析:
参考答案:Bean 工厂创建 bean 的三种方式分别是:
(1)直接构造,需要一个 default constructor 和相应的 setters/getters 方法。
要注意的是,我们可以为 getter/setter 方法传递参数(用 preperties 标签),也可以为构造函数传
递参数
(2)采用静态工厂方法,如:
<bean id="exampleBean"class="examples.ExampleBean2"
factory-method="createInstance"/>
这里要求 examples.ExampleBean2 类有个静态方法 createInstance
(3)非静态工厂方法
<bean id="myFactoryBean" class="..."> </bean>
<bean id="exampleBean"
factory-bean="myFactoryBean" factory-method="createInstance"/>
在这里,必须没有 class 标签,factory-bean 是 BeanFactory,factory-method 是它的非静态方法,
myFactoryBean 可以通过容器来管理和配置。
解析:
参考答案:(1)通过设置 bean 的 init-method 属性指定初始化的方法,他的限制是方法无法
接受任何参数,方法可以为 static。(2)实现 InitializingBean 接口的 afterPrioertiesSet()方
法。(3)销毁对象可以通过 disposableBean 的 destroy 的实现。
解析:
参考答案:IOC 即 Inversion of Control,就是反转控制,Ioc 将控制创建的职责搬进了框架之
中,并把它从应用代码中分隔开来,使用 Ioc 容器则需要指出组件需要什么对象在运行时容
器会提供给它,容器是通过查看对象的参数表做到的,也可能根据配置数据如 xml。