半夜思考之查漏补缺, 在 Spring中, 全部的 bean 都是 Spring 建立的吗 ?

      Spring 是一个 bean 容器, 负责 bean 的建立, 那么全部的 bean对象都是 Spring 容器建立的吗 ? 答案是否认的. spa

可是乍一想, 好像全部的对象都是 Spring 容器负责建立并注入的, 今天在看书的时候, 看到了建立 bean 的三种方式, 分别是 : 对象

  1. 使用构造器建立 bean 实例
  2. 使用静态工厂方法建立 bean
  3. 调用实例工厂方法建立 bean

第一个是 Spring 使用反射建立 bean 对象 , class属性指定的是 Bean实现类 ; class

第二个的 class 属性指定的是静态工厂类 , 同时还须要指定静态工厂方法 factory-method属性 , 而且要提供静态工厂方法须要的参数 , 以及被建立对象所须要的参数( 若是有的话 ) , 建立 bean 对象的语句写在静态工厂方法里 , 将bean对象以返回值的形式返回給 Spring 容器 ; 容器


第三个比第二个多个一个工厂实例对象 , 也就是 factory-bean 属性 , 其余的和静态工厂的作法同样 , 建立 bean 对象的语句写在工厂方法里, 将bean对象以返回值的形式返回給 Spring 容器 ; 反射

相关文章
相关标签/搜索