1.无参构造函数
1.xml文件配置内容 <!--无参构造函数--> <bean id="bean1" class="com.imooc.ioc.demo2.Bean1"></bean>
2.无参的构造函数
public class Bean1 {
public Bean1(){
System.out.println("bean1被实例化");
}
}
3.测试方法
public void demo1(){
ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
Bean1 bean1=(Bean1)applicationContext.getBean("bean1");
}
//会输出结果: bean1被实例化
2.静态工厂方法
1.Bean方法 public class Bean2 { } 2.静态工厂方法 public class Bean2Factory { public static Bean2 createBean2(){ System.out.println("已经执行"); return new Bean2(); } } 3.测试方法 public void demo2(){ ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); Bean2 bean2=(Bean2)applicationContext.getBean("bean2"); }
4.配置文件
<bean id="bean2" class="com.imooc.ioc.demo2.Bean2Factory" factory-method="createBean2"></bean>
3.实例化工厂
1.Bean方法 public class Bean3 { } 2.Bean工厂方法 public class Bean3Factory { public Bean3 createBean3(){ System.out.println("实例工厂"); return new Bean3(); } } 3.测试方法 public void demo3(){ ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); Bean3 bean3=(Bean3)applicationContext.getBean("bean3"); }
4.配置文件
<bean id="bean3Factory" class="com.imooc.ioc.demo2.Bean3Factory"></bean>
<bean id="bean3" factory-bean="bean3Factory" factory-method="createBean3"></bean>
//先配置工厂类的bean 再调用
实例化工厂和静态工厂的区别: 静态工厂必须提供静态方法