SSM框架学习-bean实例化

实例化bean的三种方式

1. 构造方法(常用)

SSM框架学习-bean实例化_第1张图片

Spring创建bean调用的是无参的构造方法,且无论该无参构造方法是公有还是私有的,都可以调用(底层实现原理为反射)

2. 静态工厂(了解)

要配置factory-method工厂对象,真正创建对象的方法



在这里插入图片描述

使用静态工厂主要是因为部分业务需要由改工厂完成

//静态工厂创建对象
public class OrderDaoFactory {
    public static OrderDao getOrderDao(){
        System.out.println("factory setup....");
        return new OrderDaoImpl();
    }
}

3. 实例工厂与FactoryBean

方法为非静态,所有需要先将实例工厂的bean造出来,再声明factory-method,然后声明工厂bean的id
和上面第二种静态工厂的区别在于,静态工厂不需要声明工厂配置,因为静态方法自动执行



可以看出该方法缺点非常明显

SSM框架学习-bean实例化_第2张图片

所有Spring做出了改良,后续有大量使用
创建UserDaoFactoryBean

//FactoryBean创建对象
// 造什么对象,泛型写什么类型
public class UserDaoFactoryBean implements FactoryBean {
    //代替原始实例工厂中创建对象的方法
    public UserDao getObject() throws Exception {
        return new UserDaoImpl();
    }

    // 返回UserDao的字节码
    public Class getObjectType() {
        return UserDao.class;
    }

}

xml配置文件



SSM框架学习-bean实例化_第3张图片

你可能感兴趣的:(ssm,学习,java,spring)