系列十九、Spring实例化bean的方式

一、概述

        所谓实例化bean,大白话讲就是Spring如何把这一个个的普通的Java对象创建为Spring bean的。

二、方式

Spring中实例化bean常用的有以下四种,即:

        ① 构造器方式;

        ② 静态工厂方式;

        ③ 实例工厂方式;

        ④ FactoryBean方式;

        下面通过案例进行部分代码的演示:

2.1、 构造器方式(略)

2.2、静态工厂方式

2.2.1、User

/**
 * @Author : 一叶浮萍归大海
 * @Date: 2023/11/26 18:03
 * @Description:
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
public class User implements Serializable {

    private String name;

    private Integer age;

    public static User instantiateUser() {
        System.out.println("User's instantiateUser() was invoked!");
        return new User();
    }

}

2.2.2、applicationContext.xml


2.2.3、测试

@Test
public void instantiateUser() {
	ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	User user = context.getBean("user",User.class);
	System.out.println("user = " + user);
}

2.3、实例工厂方式

2.3.1、User(同上)

2.3.2、UserFactory

/**
 * @Author : 一叶浮萍归大海
 * @Date: 2023/11/26 18:22
 * @Description:
 */
public class UserFactory {

    public User instantiateUser() {
        System.out.println("UserFactory's instantiateUser() was invoked!");
        return new User();
    }

}

2.3.3、applicationContext



2.3.4、测试

@Test
public void instantiateUser() {
	ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
	User user = context.getBean("user2",User.class);
	System.out.println("user = " + user);
}

2.4、FactoryBean方式

        参考 系列三、IOC操作bean管理 #基于FactoryBean方式,这里不再赘述。

你可能感兴趣的:(Spring5系列,java,spring)