用spring管理和实例化对象的四种方式
方式一:无参构造函数(最常用) 对象是spring创建,创建的对象还要交给spring容器管理
bean:豆子
id:在spring容器中Hello对象的名,在容器中id的值必须唯一
class:要对哪个类实例化对象,遵守 包名.类名
底层:Object obj=Class.forName(“包名.类名”).newInstance();(反射原理)
如何断定包名.类名是正确,按住ctrl键用鼠标放在class属性的值上
<bean id="hello" class="com.tarena.ioc.Hello"></bean>
方式二:静态工厂方式,对象是别的渠道创建的,交给给spring管理 spring_factory.xml
对象不是spring创建的是由Calendar.getInstance()方法创建的
其他渠道创建完毕的对象交给spring管理
<bean id="cal" class="java.util.Calendar" factory-method="getInstance"></bean>
测试代码:
@Test
public void testFactory1(){
//启动spring容器
ApplicationContext context=new ClassPathXmlApplicationContext("resources/spring_factory.xml");
Calendar cal=context.getBean("cal",Calendar.class);
System.out.println(cal.getTime());
}