简单对象
定义:可以通过new关键字创建的对象,统一称为简单对象;
Spring工厂创建时:<bean id="" class="">
复杂对象
定义:不能直接通过new关键字进行创建的对象。例如:接口类型 | 抽象类类型。
Spring工厂创建时:
这里用日历类Calendar做示范,Calendar正常的创建方式:
Calender calender = Calendar.getInstance();
1.需要新建一个类,继承FactoryBean<T>方法
public class CalendarFactoryBean implements FactoryBean<Calendar> {
//CalendarFactoryBean这个命名方式就是类名+FactoryBean
//用来书写复杂对象的创建方式
public Calendar getObject() throws Exception {
return Calendar.getInstance();
}
//指定创建的复杂对象的类型
public Class<?> getObjectType() {
return Calendar.class;
}
//用来指定创建的对象模式
public boolean isSingleton(){
return true;
}
}
2.通过工厂配置创建复杂对象
<bean class="factorybean.CalendarFactoryBean" id="calendar"></bean>
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
Calendar calendar = (Calendar) context.getBean("calendar");
Date time = calendar.getTime();
System.out.println(time);
}