一. spring Bean 是什么

在传统的 java 应用中,bean 的生命周期很简单。使用 java 关键字 new 进行 bean 实例化,然后该 bean 就可以使用了。一旦这个 bean 不再使用,则有 java 自动进行垃圾回收。相比之下,Spring 容器中的 bean 的生命周期就显得相对复杂多了。
简单地说:SpringBean 是受 Spring 管理的对象。

二. Spring 中如何创建 Bean

在 Spring 中,Bean 的创建是由 Spring 容器进行的。也就是说,在 Spring 中使用 Bean 的时候,不是由关键字 New 来创建实例。

三. Spring 中 Bean 装配方式

  1. 自动装配
  2. 使用 XML 装配
  3. 使用 java 装配

四. Spring Bean 与 javaBean 区别:

规范:
传统的 java 应用中,javabean 遵循一些规范,规范如下:
1、这个类必须具有一个公共的 (public) 无参构造函数;
2、所有属性私有化(private);
3、私有化的属性必须通过 public 类型的方法(getter 和 setter)暴露给其他程序,并且方法的命名也必须遵循一定的命名规范。
4、这个类应是可序列化的。(比如可以实现 Serializable 接口,用于实现 bean 的持久性)

Spring 容器对 Bean 没有特殊要求,不像 javaBean 一样遵循一些规范(不过对于通过设置方法注入的 Bean,一定要提供 setter 方法)

用处:

传统 javaBean 更多地作为值传递参数,
而 Spring 中的 bean 用处几乎无处不在,任何组件都可以被称其 bean。

生命周期:

传统的 java 应用中,bean 的生命周期很简单。使用 java 关键字 new 进行 bean 实例化,然后该 bean 就可以使用了,一旦该 bean 不再使用,则由 java 自动进行垃圾回收。

Spring 中的 Bean 由 Spring 容器管理其生命周期行动,较为复杂。

传统 java:子类是父类的加强,是一种特殊的父类。
Spring 中 bean:子 bean 和父 bean 可以是不同的类型。

传统 java:继承是类与类之间的关系,主要表现为方法及属性的延续。
Spring 中的 bean:Spring 中的 bean 的继承是实例之间关系,主要表现为参数值得延续。

传统 java:子类实例完全当成父类实例使用。
Spring 中 bean:子 bean 不可作父 bean 使用。