Spring 是一个 bean 容器, 负责 bean的创建, 那么所有的 bean对象都是 Spring 容器创建的吗? 答案是否定的.
但是乍一想, 好像所有的对象都是 Spring 容器负责创建并注入的, 今天在看书的时候, 看到了创建 bean 的三种方式, 分别是 :
- 使用构造器创建 bean实例
- 使用静态工厂方法创建 bean
- 调用实例工厂方法创建 bean
第一个是 Spring 使用反射创建 bean 对象, class属性指定的是 Bean实现类 ;
第二个的class属性指定的是静态工厂类, 同时还需要指定静态工厂方法 factory-method属性, 并且要提供静态工厂方法需要的参数, 以及被创建对象所需要的参数( 如果有的话 ), 创建 bean 对象的语句写在静态工厂方法里, 将bean对象以返回值的形式返回給 Spring 容器 ;
第三个比第二个多个一个工厂实例对象 , 也就是factory-bean属性 , 其他的和静态工厂的做法一样, 创建 bean 对象的语句写在工厂方法里, 将bean对象以返回值的形式返回給 Spring 容器 ;
时间: 2024-10-13 23:29:49