一,前言
前面的学习笔记一笔带过了创建对象,利用ioc来创建对象,下面详细讲解一下
二,创建对象方式
2.1 使用无参构造方式
首先要知道,任何类都有一个默认的构造方法,如果代码中写了构造方法,那默认的构造方法就不会被创建
举个例子说明下:
public class Hello {
private String name;
public Hello(){
System.out.println(name);
}
}
对应的xml中配置文件为
<bean id="hello" class="learn.Hello"></bean>
2.2 使用有参构造方法·
public class Hello {
private String name;
public Hello(String name){
super();
this.name=name;
}
}
对应的配置文件为
<bean id="hello" class="learn.Hello">
<!-- index表示参数顺序,type为参数类型 value为参数值 -->
<constructor-arg value="张三" index="0"></constructor-arg>
<!-- 通过参数名称赋值,name是参数名称 -->
<constructor-arg value="李四" name="name" ></constructor-arg>
<!-- 通过参数类型 -->
<constructor-arg type = "java.lang.String" value=“王五”></constructor-arg>
</bean>
2.3 工厂方法
分为静态工厂和动态工厂
这就不写了,大家如果有兴趣,自己百度吧,但是贴一下xml文件
<bean id="factory" class="CreateObject.ObjectFactory"></bean>
<!-- 创建user对象,用factory的实例方法 -->
<!-- factory-bean指定的是具体对象 -->
<bean id="user4" factory-bean="factory" factory-method="getInstance"></bean>
<!-- 静态方法 -->
<!-- 静态方法由类调用,需要指定类的位置,factory-method指定的是工厂内的静态方法 -->
<bean id="user" class="CreateObject.ObjectFactory" factory-method="getStaticInstance"></bean>