Bean的实例化方法

目录

1.工厂模式通常有三种形态:

2.简单工厂

2.1 静态工厂

2.1通过factory-bean实例化

2.3通过FactoryBean接口实例化

3.测试 关于容器的使用

3.1获得spring文件方式 

3.2getBean方式

4.关闭容器


1.工厂模式通常有三种:

  • 第一种:简单工厂模式(Simple Factory):不属于23种设计模式之一。简单工厂模式又叫做:静态 工厂方法模式。简单工厂模式是工厂方法模式的一种特殊实现。
  • 第二种:工厂方法模式(Factory Method):是23种设计模式之一。
  • 第三种:抽象工厂模式(Abstract Factory):是23种设计模式之一

2.简单工厂

2.1 静态工厂

第一步:定义一个Bean

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id ;
    private  String name ;
}

第二步:定义具体工厂类,工厂类中定义静态实例方法

public class singUserFactory {
    public static User creatUser(Integer id , String name){
        return new User(id,name);
    }
}

第三步:在Spring配置文件中指定创建该Bean的方法(使用factory-method属性指定)

  
        
        
    

第四步:编写测试程序

 @Test
    public  void  testUser(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");
        User bean = applicationContext.getBean("static", User.class);
        System.out.println(bean);
    }

2.1通过factory-bean实例化

这种方式本质上是:通过工厂方法模式进行实例化。

第一步:定义一个Bean

第二步:定义具体工厂类,工厂类中定义实例方法 (不是静态的 static)

第三步:在Spring配置文件中指定factory-bean以及factory-method


第四步:编写测试程序

2.3通过FactoryBean接口实例化

在Spring中,当你编写的类直接实现FactoryBean接口之后,factory-bean不需要指定了,factory-method也不需要指定了。

factory-bean会自动指向实现FactoryBean接口的类,factory-method会自动指向getObject()方法。

第一步:定义一个Bean

第二步:编写一个类实现FactoryBean接口

public class UserFactory implements FactoryBean {
    @Override
    public Object getObject() throws Exception {
        return new User();
    }
    @Override
    public Class getObjectType() {
        return null;
    }
}

第三步:在Spring配置文件中配置FactoryBean

  

第四步测试

3.测试 关于容器的使用

3.1获得spring文件方式 

Bean的实例化方法_第1张图片

 

3.2getBean方式

Bean的实例化方法_第2张图片

4.关闭容器

你可能感兴趣的:(Spring,java,开发语言)