一、通過構造方法實例化Bean
bean中加構造方法
public class Bean1 {
public Bean1() {
System.out.println("Bean1構造方法.Bean1");
}
}
xml中配置Bean
<bean class="main.java.jirath.spring.class05.Bean1" id="bean1"></bean>
采用ApplicationContext中ClassPathXmlApplicationContext的方法將Bean交給IOC容器保管。
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("spring.xml");
Bean1 bean1=context.getBean("bean1", Bean1.class);
System.out.println("Bean1 = "+bean1);
}
二、通過靜態方法實例化Bean
除了bean以外,還需要一個beanFactory類用以產生Bean,產生Bean的方法是靜態的
public class Bean2Factory {
public static Bean2 getBean2(){
return new Bean2();
}
}
bean2與上一條相同
public class Bean2 {
public Bean2() {
System.out.println("Bean2構造方法.Bean2");
}
}
xml文件中略有不同,需要添加factory-method
<bean class="main.java.jirath.spring.class05.Bean2Factory" factory-method="getBean2" id="bean2"></bean>
三、通過實例方法實例化Bean
同樣需要一個factory類,產生Bean的方法不能是靜態
public class Bean3Factory {
public Bean3 getBean3(){return new Bean3();}
}
bean相同
public class Bean3 {
public Bean3() {
System.out.println("Bean3構造方法.Bean3");
}
}
xml的配置需要多寫一個Bean3,Bean3中需要寫factory-bean factory-method
<bean class="main.java.jirath.spring.class05.Bean3Factory" id="bean3Factory"></bean>
<bean class="main.java.jirath.spring.class05.Bean3" factory-bean="bean3Factory" factory-method="getBean3" id="bean3"></bean>