<?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">
<!-- class 指向静态工厂方法的全类名
factory-method:指向静态工厂方法
construction-arg:如果工厂方法需要传入参数则使用 construction-arg 传参
-->
<bean id="car1" class="com.atguigu.spring.beans.factory.StaticCarFactory"
factory-method="getCar">
<constructor-arg value="audi"></constructor-arg>
</bean>
<!-- 配置工厂的实例 -->
<bean id="carFactory" class="com.atguigu.spring.beans.factory.InstanceCarFactory"></bean>
<!-- 通过工厂的方法配置bean -->
<!--
factory-bean 属性:指向实例化的工厂的bean
factory-method:指向实例化的工厂的方法
construction-arg:如果工厂方法需要传入参数则使用 construction-arg 传参
-->
<bean id="car2" factory-bean="carFactory" factory-method="getCar">
<constructor-arg value="ford"></constructor-arg>
</bean>
</beans>
<?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">
<!--
class:指向FactoryBean的全类名
proprerty:配置FactoryBean的属性
但实际返回的是 FactoryBean 的 getObject() 方法的返回值!
-->
<bean id="car" class="com.atguigu.spring.beans.factorybean.CarFactoryBean">
<property name="brand" value="BMW"></property>
</bean>
</beans>