天天看点

Spring -- 配置bean

spring配置如下:

class:指定为工厂类型

factory-method="":告诉Spring这个工厂的工厂方法;

Spring会调用工厂方法,把返回的结果放在容器中;容器中其实保存的是Book

1)、必须得有这个工厂对象

2)、我们创建bean的时候使用这个工厂

例如:

spring配置文件如下:

告诉Spring创建book对象的时候使用哪个工厂对象

factory-bean="instanceBookFactory":指定工厂对象

factory-method="getBook":指定工厂方法

配置文件如下:

Spring定义的一个工厂接口;实现这个接口;实现了这个接口的所有类,Spring就认为这是一个工厂类 容器中保存的是getObject方法返回的对象

通过abstract属性创建一个模板bean:abstract="true":这是一个抽象定义,只是让别人继承的。

 parent="person01":只是指配置的继承。

改变创建顺序

depends-on="person02":依赖的bean优先创建

scope="":作用域;

  prototype:原型,多实例;

  singleton:单实例(默认)

web环境有用的

  request:同一次请求创建一次对象

  session:同一个会话创建一个对象

单实例:

  1、默认注册的bean都是单实例的

  2、容器一启动就会创建这些单实例bean

多实例:

  1、容器启动不会创建这些bean

生命周期:(从创建到销毁的过程);

  Spring帮我们创建对象====销毁:

  Spring允许我们为bean自定义声明周期方法,在具体生命周期的时候会自动调用

  init-method="":指定初始化方法;

  destroy-method="":指定销毁方法;

调用:

  容器启动(调用构造器)===init=====xxxx====容器关闭销毁;

多实例:(销毁方法不会被调用)

  每次获取(调用构造器)===init====xxx====容器关闭;

配置 调用对应的初始化和销毁方法:

作用:拦截bean的初始化过程在初始化前后做一些工作;

使用:

  1、写实现

  2、注册在容器中

配置文件内容如下:

Spring认为每一个组件是有默认初始化方法的,只是我们可

能没定义

1、每个bean创建初始化后置处理器都会工作

2、我们可以在后置处理器中对初始化前后的bean进行检查修改。。。