spring支持三种方式创建Bean
1.调用构造器创建Bean
2.调用静态工厂方法创建Bean
3.调用实例工厂方法创建Bean
调用构造器创建Bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="testBean" class="domain.TestBean">
<constructor-arg name="name" value="木秀于林"></constructor-arg>
</bean>
</beans>
调用静态工厂方法创建Bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--bean id="testBean" class="domain.TestBean">
<constructor-arg name="name" value="木秀于林"></constructor-arg>
</bean-->
<bean name="testBean" class="BeanFactory" factory-method="getBean">
<constructor-arg value="木林湖"/>
</bean>
</beans>
调用实例工厂方法创建Bean
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--bean id="testBean" class="domain.TestBean">
<constructor-arg name="name" value="木秀于林"></constructor-arg>
</bean-->
<bean name="beanFactory" class="BeanFactory" ></bean>
<bean name="testBean" factory-bean="beanFactory" factory-method="getBean">
<constructor-arg value="木林湖"/>
</bean>
</beans>
<!-- 这里的testBean 是由工厂类beanFactory 的getBean 方法创建的 -->
总结
静态工厂方法创建实例只需要指定静态工厂的类路径和类中静态方法的名称,spring就会帮我们将Bean创建出来
实例工厂静态方法先要让spring将工厂创建出来,再由这个工厂的类方法创建bean