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>
  • 相关阅读:
    mysql 5.7.28 中GROUP BY报错问题 SELECT list is not in GROUP BY clause and contains no
    mysql 的root 用户无法授权,navicat 远程授权提示1044解决方案
    Java equals(),== 和 hashcode()
    一键批处理图片的脚本(将指定目录中的图片处理成要求的分辨率)
    Anaconda环境下GPT2-Chinese的基本使用记录
    Ubuntu WSL 下编译并使用OpenJDK12
    SSM项目下Druid连接池的配置及数据源监控的使用
    《MySql必知必会》笔记整理
    Java面试题整理
    SpringBoot 访问树莓派上的MySql
  • 原文地址:https://www.cnblogs.com/bulrush/p/7906785.html
Copyright © 2011-2022 走看看