首页 > 代码库 > 半夜思考之查漏补缺, 在 Spring中, 所有的bean都是Spring创建的吗?
半夜思考之查漏补缺, 在 Spring中, 所有的bean都是Spring创建的吗?
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 容器 ;
半夜思考之查漏补缺, 在 Spring中, 所有的bean都是Spring创建的吗?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。