标签:
作用:创建对象 & 处理对象依赖关系
容器创建对象的方式
1)调用无参数构造器
<bean id="user" class="com.cx.createObj.User"></bean>
2)带参数构造器
<bean id="user" class="com.cx.createObj.User"> <constructor-arg index="0" type="int" value="100"></constructor-arg> <constructor-arg index="1" type="java.lang.String" value="Jack"></constructor-arg> </bean>
<!--定义一个字符串,值时mike-->
<bean id="str" class="java.lang.String">
<constructor-arg value="mike"></constructor-arg>
</bean>
<bean id="user" class="com.cx.createObj.User">
<constructor-arg index="0" type="int" value="100"></constructor-arg>
<constructor-arg index="1" type="java.lang.String" ref="str"></constructor-arg>
</bean>
3)工厂创建对象
工厂类,非静态方法创建对象
<!--创建工厂-->
<bean id="factory" class="com.cx.createObj.ObjectFactory"></bean>
<bean id="user" factory-bean="factory" factory-method="getInstance"></bean>
工厂类,静态方法创建对象
<!--静态方法-->
<bean id="user" class="com.cx.createObj.ObjectFactory" factory-method="getStaticInstance"></bean>
User实体类
package com.cx.createObj; /** * Created by cxspace on 16-8-6. */ public class User { private int id; private String name; public User(){ System.out.println("----调用无参构造方法----"); } public User(int id , String name){ this.id = id; this.name = name; System.out.println("----调用带参数构造器----"); } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", name=‘" + name + ‘\‘‘ + ‘}‘; } public void init_user(){ System.out.println("创建对象之后,初始化"); } public void destroy_user(){ System.out.println("IOC容器销毁,user对象回收"); } }
工厂类
package com.cx.createObj; /** * Created by cxspace on 16-8-6. */ public class ObjectFactory { //实例方法创建对象 public User getInstance(){ return new User(101,"工厂:调用实例方法"); } //静态方法创建对象 public static User getStaticInstance(){ return new User(100,"工厂:调用静态方法"); } }
标签:
原文地址:http://www.cnblogs.com/cxspace/p/5743422.html