Spring XML Bean 标签基本属性

Spring XML Bean 标签基本属性

1. 标签属性介绍:

  • id

bean 名称,默认为 类名;

  • class

被代理类的 class;

  • name:

相当于 alias,bean 别名,多个别名用 ‘,’ 隔开;

  • parent:

首先 parent 并不指 bean 对象的继承关系,它是指的是 标签的继承关系,既一个 标签可以通过 parent 继承到另一个 标签的所有数据,避免一些重复数据的重复书写;

  • scope:

作用域,表示这个 bean 的作用范围,默认有 singleton,prototype,表示 单例和多例,Spring Web 容器又增加了 request、session、global-session 三个作用域;

singleton(default) 单例
prototype 多例
request 每一个 HTTP 请求对应着一个 bean
session 每个 session 对应着一个新的 bean 对象
global-session global session只有应用在基于porlet的web应用程序中才有意义,它映射到porlet的global范围的session,如果普通的servlet的web 应用中使用了这个scope,容器会把它作为普通的session的scope对待。
  • abstract:

true or false,表示这个 是否是一个抽象的、不能被实例化的 bean,一般来说我们可以结合 实现对公共 配置数据的提取;

  • lazy-init:

true or false,是否延迟加载;

  • depends-on:

这个 Bean 会依赖到的bean,bean 在初始化的时候,会判断 depends-on 是否被初始化,如果没有,则优先初始化 depends-on 的bean;

  • autowire:

自动注入方式,no(默认)、byName、byType、constructor、autodetect;默认no 不会进行属性的注入;constructor 还是走的 byName,但它是通过 constructor 进行的注入;autodetect 如果有默认的构造方法,通过 construct的方式自动装配,否则使用 byType的方式自动装配;

  • autowire-candidate:

true or false,默认为 true,如果 的 autowire-candidate属性设置为 false,则其他 bean 属性注入的时候,不会考虑这个 bean。

  • primary:

true or false,默认 false,如果 的 primary 为 true,并且同个 bean 的类型存在多个,自动注入的时候,就会选择 primary 为 true 的bean;

  • init-method:

初始化方法,当 bean 被创建之后,spring 会调用 invokeInitMethods 执行初始化方法;

  • destroy-method:

通过 spring 销毁 bean 的时候,会执行 destroy-method 方法;

  • factory-method:

创建 bean 的工厂方法,该方法有两种形式,一种静态方法,如下所示:

<bean id="stu" class="com.bin.pojo.StuDO" factory-method="getStuDo"/>
public static StuDO getStuDo() {
    
    
    StuDO stu = new StuDO();
    stu.id = idBuilder++;
    return stu;
}

另一种是使用普通方法做为 bean factory,但它需要集合 factory-bean 来使用,既指定一个 为 bean 工厂:

<bean id="stu" factory-bean="stuOne" factory-method="getStuDo"/>
  • factory-bean:

如上所示,表明这个 bean 是一个 工厂bean

2. 子标签:

  • property:

bean 的一些基本属性;

  • constructor-arg:

构造方法注入 数据

  • lookup-method:

方法重写,,指定要从写的方法名,和返回的 bean,通过 lookup-method 返回的 bean,是一个多例 bean,这样我们也就可以在一个单例 bean 中获取一些多例的 bean;

  • replaced-method:

, lookup-method 一样,它也是方法重写,但不用点在于,replace-method 的 bean 必须实现 MethodReplacer 接口;

  • qualifier:

当通过类型注入的时候,会存在多个类型一致的 bean,这时候我们可以通过 qualifier 利用名字进行注入;

  • meta:

类的元数据;

猜你喜欢

转载自blog.csdn.net/qq_36845919/article/details/107452678