1.無參構造函數app
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 再調用
實例化工廠和靜態工廠的區別: 靜態工廠必須提供靜態方法spa