spring框架中<bean>标签中常用属性及作用

133 阅读2分钟

在Spring框架中,<bean>标签用于在XML配置文件中定义应用程序中的bean。<bean>标签包含多个属性,每个属性都有其特定的用途。以下是一些常见的<bean>标签属性及其作用:

  1. id 或 name

    • 用于指定bean的唯一标识符。id属性通常用于单个标识符,而name属性可以用于指定多个别名(由逗号、分号或空格分隔)。在较新的Spring版本中,推荐使用id属性。
  2. class

    • 指定bean的完整类名,包括包名。Spring容器会使用这个类名来创建bean的实例。
  3. scope

    • 定义bean的作用域。作用域决定了bean的生命周期以及它是如何被实例化的。常见的作用域有:

      • singleton(默认):在整个Spring IoC容器中,只创建bean的一个实例。
      • prototype:每次请求时都会创建一个新的bean实例。
      • request:在HTTP请求的生命周期内有效。
      • session:在HTTP会话的生命周期内有效。
      • application:在ServletContext的生命周期内有效(仅在基于Web的Spring ApplicationContext中可用)。
      • websocket:在WebSocket的生命周期内有效(Spring 4.2+)。
  4. constructor-arg(或constructor-args):

    • 用于注入构造方法的参数。你可以指定参数的索引、类型或名称来匹配构造方法的参数。
  5. property(或properties):

    • 用于注入bean的属性值。你可以使用namevalue属性来指定属性的名称和值,或者使用ref属性来引用另一个bean。
  6. factory-bean

    • 当bean的实例需要通过另一个bean的工厂方法创建时,使用此属性指定工厂bean的ID。
  7. factory-method

    • 当使用工厂bean来创建bean实例时,此属性指定工厂bean中的方法名。
  8. init-method

    • 指定在bean实例化后、属性注入前调用的初始化方法名。
  9. destroy-method

    • 指定在容器关闭时、bean销毁前调用的销毁方法名。注意,只有scope为singleton的bean才会保证被销毁,prototype bean不会被容器管理销毁。
  10. depends-on

    • 定义bean初始化时依赖的其他bean。这可以确保在依赖的bean被初始化后,当前bean才进行初始化。
  11. lazy-init

    • 用于延迟bean的初始化。默认情况下,singleton bean在容器启动时就被初始化。将此属性设置为true,bean将在第一次请求时才进行初始化。
  12. autowire

    • 控制bean的自动装配模式。自动装配允许Spring自动将bean依赖注入到其他bean中,而无需显式指定refvalue。可能的值有byNamebyTypeconstructor等。
  13. abstract

    • 定义bean为抽象bean。抽象bean不能被实例化,只能作为其他bean的模板。它主要用于配置共同的属性和依赖。
  14. parent

    • 指定当前bean继承的父bean的ID。子bean会继承父bean的所有属性和配置,除非它们被显式覆盖。