码迷,mamicode.com
首页 > 编程语言 > 详细

半夜思考之查漏补缺, 在 Spring中, 所有的bean都是Spring创建的吗?

时间:2017-08-05 22:04:41      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:factory   方法   eth   创建   第一个   注入   一个   构造器   容器   

      Spring 是一个 bean 容器, 负责 bean的创建, 那么所有的 bean对象都是 Spring 容器创建的吗? 答案是否定的.

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

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

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

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


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

 

半夜思考之查漏补缺, 在 Spring中, 所有的bean都是Spring创建的吗?

标签:factory   方法   eth   创建   第一个   注入   一个   构造器   容器   

原文地址:http://www.cnblogs.com/daimajun/p/7291591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!