码迷,mamicode.com
首页 > 编程语言 > 详细

Spring初学之通过工厂方法配置Bean

时间:2017-04-12 23:00:58      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:factor   struct   color   import   tostring   代码   配置实例   ram   span   

工厂方法配置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

标签:factor   struct   color   import   tostring   代码   配置实例   ram   span   

原文地址:http://www.cnblogs.com/hyyq/p/6701774.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!