7.7.1:使用构造器创建Bean实例
来源:互联网 发布:兴业证券软件下载 编辑:程序博客网 时间:2024/04/29 03:16
大多数情况下,BeanFactory直接通过new关键字调用构造器来创建Bean实例,而class属性指定了Bean实例的实现类。但这并不是实例化Bean的唯一方法。
创建Bean通常有如下三个方法:
① 调用构造器创建Bean实例。
② 调用静态工厂方法创建Bean。
③ 调用实例工厂方法创建Bean。
本篇文章讨论使用构造器创建Bean实例:
使用构造器来创建Bean实例是最常见的情况,如果采用设置注入的方式,要求该类提供无参数构造器。
BeanFactory将使用无参数构造器来创建Bean实例,该实例是个默认实例,Spring对Bean实例的所有属性执行默认初始化,即所有基本类型的值初始化为0或false,所有引用类型的值初始化为null。
接下来,BeanFactory会根据配置文件决定依赖关系,先实例化被依赖的Bean实例,然后为Bean注入依赖关系。最后将一个完整的Bean实例返回给程序,该Bean实例的所有属性,已经由Spring容器完成了初始化。
Axe.java :
public interface Axe {public String chop();}Person.java :
public interface Person {public void useAxe();}SteelAxe.java :
public class SteelAxe implements Axe {@Overridepublic String chop() {return "钢斧砍柴真快";}public SteelAxe() {System.out.println("Spring实例化依赖Bean:SteelAxe实例...");}}Chinese.java :
public class Chinese implements Person{@Overridepublic void useAxe() {System.out.println(axe.chop());}private Axe axe;public void setAxe(Axe axe) {this.axe = axe;}public Chinese() {System.out.println("Spring实例化主调Bean:Chinese实例...");}}bean.xml核心配置 :
<bean id="chinese" class="com.bean.Chinese"> <property name="axe" ref="steelAxe"/> </bean> <bean id="steelAxe" class="com.bean.SteelAxe"/>Test.java :
public class Test {public static void main(String[] args) {ApplicationContext ctx=new ClassPathXmlApplicationContext("bean.xml");Person person=(Person) ctx.getBean("chinese");person.useAxe();}}运行Test.java,控制台输出:
执行结果清楚地反映了执行过程:
① 程序创建ApplicationContext实例。
② 调用Chinese类的默认构造器创建默认实例。
③ 根据配置文件注入依赖关系:先实例化依赖Bean,然后将依赖Bean注入。
④ 返回一个完整的Chinese实例。
- 7.7.1:使用构造器创建Bean实例
- 使用构造器创建bean
- Spring Bean工厂创建Bean实例的方法之使用构造器
- Spring系列--bean容器的实例化之构造器创建bean实例(采用dtd约束)
- 创建Bean的三种方式 在大多数情况下,Spring容器直接通过new关键字调用构造器来创建Bean实例,而class属性指定Bean实例的实现类,但这不是实例化Bean的唯一方法。实际上,Sprin
- Spring 类构造器创建Bean
- Bean&BeanFactory&创建bean实例
- bean的实例---用构造器来实例化
- spring创建bean的三种方式-通过构造器,通过静态工厂方法,通过实例工厂方法
- ApplicationContext-Bean实例创建过程分析1
- 通过使用构造器来配置Bean
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例
- spring实例化bean以及构造器装配属性
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- Spring使用实例工厂方法创建Bean(一)
- Spring Bean工厂创建Bean实例的方法之使用静态工厂类
- Spring Bean工厂创建Bean实例的方法之使用工厂类
- 7.7.3:调用实例工厂方法创建Bean
- Citrix 服务器虚拟化之一 网络部署Xenserver 6.2
- 7.5.9: 组合属性名称
- Bash string operation
- 7.5.10: Spring的Bean和JavaBean的比较
- 挂在lvm和lvm2
- 7.7.1:使用构造器创建Bean实例
- 7.7.2:使用静态工厂方法创建Bean
- 7.7.3:调用实例工厂方法创建Bean
- 如何在创建rails项目时指定版本
- 7.9.1: 依赖关系注入之后的行为
- 组合恒等式的证明
- 深入浅出VC++串口编程之基于Win32 API
- OSX: 设置/显示分辨率程序-更新
- 中断处理