一、通过构造方法实例化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>