• Spring <bean> 参数意义


    1.id

    bean的唯一标识,

    2.class

    类的完全限定名,

    3.parent

    父类bean定义的名字。

         如果没有任何声明,会使用父bean,但是也可以重写父类。重写父类时,子bean 必须与父bean 兼容,也就是说,

    接受父类的属性值和构造器声明的值。

         子bean会继承父bean的构造器声明的值,属性值,并且重写父bean的方法。如果init方法,destroy方法已声明,

    他们会覆盖父bean相应的设置。

      保留的设置会直接从子bean获取,包括depends on,autowire mode,scope,lazy init.

    4.abstract

    声明bean是否是抽象的,决定该类是否会实例化。默认是false。

    注意:abstract属性不会被子bean继承,所以,abstract为true时需要对每个bean显示声明。

    5.lazy-init

    决定是否延迟实例化,如果为false,则启动时会立即实例化单例模式的bean.默认是false。

    注意:lazy-init属性不会被子bean继承。

    6.autowire

    决定是否自动装配bean的属性。

    autowire有4中模式:

    • "no"

        Spring默认的模式。bean的引用必须在XML文件中通过<ref/>元素或ref属性显示定义。

        spring推荐使用的模式,这样可以使文档更清晰明确。

    • "byName"

        通过属性名使用自动装配。如果一个Cat类拥有一个dog属性,那么Spring会根据名字dog

        去寻找bean,如果没有找到bean,则不会自动装配。

    • "byType"

        如果Spring容器只有该属性类型的一个bean,会自动装配。当有多个该属性类型的bean时

        会报错。如果没有,则不会自动装配。

    • "constructor"

        针对构造器引用,和byType类似。

    注意:autowire属性不会被子bean继承。

    7.depends-on

    该bean初始化时依赖的其他bean的名字,bean工厂确保其他bean在该bean之前完成初始化。

    注意:依赖项一般通过bean属性或构造器声明,这个属性对其他依赖(如静态类或启动阶段数据库的准备)是必要的。

    注意:depends-on属性不会被子bean继承。

    8.scope

    scope属性值有四种: singleton,prototype,request,session

    singleton:单例模式,默认选项

    prototype:非单例模式

    request:对于web应用,每一个请求产生一个新的实例

    session:对于web应用,一个session产生一个实例

    本人水平有限,如果有误,还请指正。

    还有几个选项,需要请自行查看文档。

    9.autowire-candidate

    10.primary

    11.init-method

    12.destroy-method

    13.factory-method

    14.factory-bean

  • 相关阅读:
    作业练习
    作业练习
    作业
    作业
    作业
    作业
    作业
    作业
    作业
    作业
  • 原文地址:https://www.cnblogs.com/selfchange/p/5632984.html
Copyright © 2020-2023  润新知