首页 > 代码库 > Spring初学之通过工厂方法配置Bean
Spring初学之通过工厂方法配置Bean
工厂方法配置bean分为两种,一种是实例工厂方法,另一种是静态工厂方法。
先来看看实体bean:
Car.java:
package spring.beans.factory; public class Car { private String name; private int price; public Car(String name, int price) { super(); this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } @Override public String toString() { return "Car [name=" + name + ", price=" + price + "]"; } }
一、实例工厂方法配置bean
InstanceBeanFactory.java:
package spring.beans.factory; import java.util.HashMap; import java.util.Map; /** * 实例工厂方法 * @author Administrator * */ public class InstanceBeanFactory { private Map<String, Car> map=null; public InstanceBeanFactory() { map=new HashMap<String, Car>(); map.put("奥迪", new Car("奥迪", 300000)); map.put("福特", new Car("福特", 400000)); } public Car getCar(String name){ return map.get(name); } }
spring的xml配置文件核心代码:
<!-- 配置实例工厂方法的bean --> <bean id="instanceFactory" class="spring.beans.factory.InstanceBeanFactory"></bean> <!-- 通过实例工厂方法创建bean --> <bean id="car2" factory-bean="instanceFactory" factory-method="getCar"> <constructor-arg value="福特"></constructor-arg> </bean>
二、静态方法配置bean
StaticBeanFactory.java:
package spring.beans.factory; import java.util.HashMap; import java.util.Map; /** * 通过静态工厂方法创建bean * @author Administrator * */ public class StaticBeanFactory { private static Map<String, Car> map=new HashMap<String, Car>(); static{ map.put("长安", new Car("长安", 30000)); map.put("奥迪", new Car("奥迪", 300000)); } public static Car getCar(String name){ return map.get(name); } }
spring的xml配置文件核心代码:
<!-- 通过静态工厂方法创建bean --> <bean id="car" class="spring.beans.factory.StaticBeanFactory" factory-method="getCar"> <constructor-arg value="奥迪"></constructor-arg> </bean>
测试方法:
package spring.beans.factory.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import spring.beans.factory.Car; public class Main { public static void main(String[] args) { ApplicationContext ctx=new ClassPathXmlApplicationContext("beans-factory.xml"); Car car=(Car) ctx.getBean("car"); System.out.println(car); Car car1=(Car) ctx.getBean("car2"); System.out.println(car1); } }
输出:
Car [name=奥迪, price=300000]
Car [name=福特, price=400000]
Spring初学之通过工厂方法配置Bean
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。