• Spring-02 -Spring 创建对象的三种方式 :1.通过构造方法创建/2.实例工厂/3.静态工厂


    1. 通过构造方法创建 

        1.1 无参构造创建:默认情况.

        1.2 有参构造创建:需要明确配置

          1.2.1 需要在类中提供有参构造方法

          1.2.2  applicationContext.xml 中设置调用哪个构造方法创建对象

            1.2.2.1 如果设定的条件匹配多个构造方法,则会执行最后的构造方法.

               1.2.2.2 index : 参数的索引, 0 开始

            1.2.2.3 name: 参数名

            1.2.2.4 type:类型(区分开关键字和封装类 int 和Integer)

    <bean id="peo" class="com.bjsxt.pojo.People">
    
    <!-- ref 引用另一个bean value 基本数据类型或 String 等 -->
    
    <constructor-arg index="0" name="id" type="int" value="123"></constructor-arg>
    <constructor-arg index="1" name="name" type="java.lang.String" value="张三"></constructor-arg>
    </bean>
    1. 实例工厂

        1.1 工厂设计模式:帮助创建类对象.一个工厂可以生产多个对象.

        1.2 实例工厂:需要先创建工厂,才能生产对象

        1.3 实现步骤:

          1.3.1 必须要有一个实例工厂

    public class PeopleFactory {
    
        public People newInstance(){
    
            return new People(1,"测试");
        }
    }

          2.3.2 applicationContext.xml 中配置两个标签:工厂对象factory-bean和需要创建的对象方法:factory-method.

    <bean    id="factory"  class="com.bjsxt.pojo.PeopleFactory">  </bean>
    <bean    id="peo1" factory-bean="factory" factory-method="newInstance">  </bean>

          2.3.3测试实例工厂

      PeopleFactory factory=new PeopleFactory();
          People peo1=pf.newInstance();
           System.out.print(peo1);
    1. 静态工厂

        1.1 不需要创建工厂,可以快速创建对象.

        1.2 实现步骤

        1.2.1编写一个静态工厂(在方法上添加static)

    public class PeopleFactory {
    
    public static People newInstance(){
    
    return new People(1,"测试");
    
    }

        1.2.2 在applicationContext.xml 中配置两个标签:

          工厂对象的类class和需要创建的对象方法:factory-method.编写一个静态工厂(在方法上添加static)

    <bean  id="peo2"class="com.bjsxt.pojo.PeopleFactory"
    
    factory-method="newInstance"></bean>

        1.2.3 测试方法 

    People people1=PeopleFactory.newInstance();
    System.out.println(people1);
     
  • 相关阅读:
    什么是电信BOSS系统?
    得到windows系统图标的解决方案
    FusionChart实现金字塔分布图
    OCP-1Z0-051-V9.02-91题
    FusionChart用XML和JSON两种格式提供数据源
    OCP-1Z0-051-V9.02-156题
    OCP-1Z0-051-V9.02-155题
    OCP-1Z0-051-V9.02-154题
    OCP-1Z0-051-V9.02-153题
    OCP-1Z0-051-V9.02-151题
  • 原文地址:https://www.cnblogs.com/zhazhaacmer/p/10087208.html
Copyright © 2020-2023  润新知