zoukankan      html  css  js  c++  java
  • 工厂方法配置bean

    1:静态工厂方法配置bean

    1):对象

    package com.spring.helloworld;
    
    public class Car {
        private String name;
        private double jia;
        public void setName(String name) {
            this.name = name;
        }
        public void setJia(double jia) {
            this.jia = jia;
        }
    
        @Override
        public String toString() {
            return "Car [name=" + name + ", jia=" + jia + "]";
        }
        public Car(String name, int jia) {
            super();
            this.name = name;
            this.jia = jia;
        }
        
        
    }

    2):静态工厂方法

    package com.spring.helloworld;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class StaticCarFactory {
        
        private static Map<String ,Car> cars=new HashMap<String,Car>();
        static{
            cars.put("audi", new Car("audi",30000));
            cars.put("ford", new Car("ford",40000));
            
        }
        public static Car getCar(String name){
            return cars.get(name);
        }
    }

    3):配置文件

    <!-- 
            class属性:指向静态工厂方法的全类名
            factory-method:指向静态工厂方法的名称
            constructor-arg:如果工厂方法需要传入参数,则使用构造器配置参数
         -->
        <bean id="car" class="com.spring.helloworld.StaticCarFactory"
        factory-method="getCar">
        <constructor-arg value="ford"></constructor-arg>
        </bean>

    2:实例工厂方法

    package com.spring.helloworld;
    
    import java.util.HashMap;
    import java.util.Map;
    
    public class InstanceCarFactory {
        
        private  Map<String ,Car> cars=null;
        public InstanceCarFactory(){
            cars=new HashMap<String,Car>();
            cars.put("audi", new Car("audi",30000));
            cars.put("ford", new Car("ford",30000));
            
        }
        public  Car getCar(String name){
            return cars.get(name);
        }
    }
    <!-- 配置工厂的实例 -->
        <bean id="carFactory" class="com.spring.helloworld.InstanceCarFactory"></bean>
        <!-- 通过实例工厂方法来配置bean
            factory-bean:指向实例工厂方法的全类名
            factory-method:指向静态工厂方法的名字
            constructor-arg:如果工厂方法需要传入参数,则使用构造器配置参数
         -->
        <bean id="car" 
        factory-bean="carFactory" factory-method="getCar">
        <constructor-arg value="ford"></constructor-arg>
        </bean>
  • 相关阅读:
    jquery+flask+keras+nsfw快速搭建一个简易鉴黄工具
    基于LSTM + keras 的诗歌生成器
    Bilateral Multi-Perspective Matching for Natural Language Sentences---读书笔记
    text matching(文本匹配) 相关资料总结
    redis实战---读书笔记
    effective java(第三版)---读书笔记
    深入理解java虚拟机---读书笔记
    这就是搜索引擎(核心技术讲解)---读书笔记
    google nmt 实验踩坑记录
    python打包到pypi小结
  • 原文地址:https://www.cnblogs.com/bulrush/p/7906785.html
Copyright © 2011-2022 走看看