当前位置:网站首页 > Java教程 > 正文

java spring注解教程



我们可以通过 和 包中的注解来使用 Spring DI 引擎的功能。

通常把这些注解称为 “Spring 核心注解”。

可以在构造函数、Setter 方法或字段注入中使用 注解,Spring 会解析并注入依赖。

构造函数注入:

Setter 注入:

字段注入:

有一个名为 的 参数,默认值为 。当 Spring 找不到合适的 Bean 进行注入时,它会控制 Spring 的行为。当值为 时,会抛出异常,反之则不会。

注意,如果使用构造函数注入,所有构造函数参数都是 必须的

从 Spring 4.3 开始,除非声明了至少两个构造函数,否则不需要用 明确注解构造函数。

用于标记工厂方法,用于实例化 Spring Bean:

生成的 的名称与工厂方法的名称相同。如果想使用不同的名称,可以使用此注解的 或 参数( 是 的别名):

注意,所有注解为 的方法必须位于 类中。

在模糊情况下,使用 注解与 注解一起,提供想要使用的 Bean 的 ID 或名称。

例如,以下两个 Bean 实现了相同的接口:

如果 Spring 需要注入一个 Bean,最终会出现多个匹配的定义。在这种情况下,可以使用 注解显式地提供 Bean 的名称。

构造函数注入:

Setter 注入:

或者:

字段注入:

用于 Setter 方法,以标记我们希望通过 XML 填充的依赖:

否则,将抛出 异常。

可以使用 向 Bean 注入属性值。它与构造函数、Setter 和字段注入兼容。

构造函数:

Setter 方法:

或者:

字段:

注入静态值并不实用。因此,可以在 中使用占位符字符串来注入外部资源中定义的值,例如 或 文件中的值。

假设有以下 文件:

可以用下面的方法注入 的值:

甚至可以在 SpEL 中使用 。

可以使用此注解让 Spring 在注解的 Bean 之前初始化其他 Bean。通常情况下,这种行为是自动进行的,基于 Bean 之间的显式依赖关系。

只有当依赖关系是隐式的,例如 JDBC 驱动加载或静态变量初始化时,才需要此注解。

可以在依赖类上使用 来指定依赖 Bean 的名称。注解的 参数需要一个包含依赖 Bean 名称的数组:

或者,如果我们使用 注解定义 Bean,那么就应该在工厂方法上使用 注解:

当我们希望延迟初始化 Bean 时,可以使用 注解。默认情况下,Spring 在 Application Context 启动时会立即创建所有 Singleton(单例)Bean。

不过,在某些情况下,我们需要在使用时创建 Bean,而不是在应用启动时。

这个注解会根据具体标注位置而有不同的表现,可以用在如下位置:

  • 注解的 Bean 工厂方法,可以延迟方法调用(从而延迟 Bean 的创建)。
  • 类,包含的 方法都将受到影响
  • 类,而该组件类不是 类,则该 Bean 将被延迟地初始化
  • 构造函数、Setter 方法或字段,用于延迟地(通过代理)加载依赖本身

该注解有一个名为 的参数,默认值为 。它可以覆盖默认行为。

例如,当全局设置为懒加载(lazy)时,可以标记要立即加载的 Bean,或者在使用 标记的 类中,配置特定的 方法以进行立即加载:

使用 注解的方法会告诉 Spring,在调用该方法时返回该方法返回类型的实例。

有时,需要定义多个相同类型的 Bean。在这种情况下,注入将不会成功,因为 Spring 不知道需要注入哪个 Bean。

上文已经介绍了处理这种情况的方法:用 标记所有注入点,并指定所需的 Bean 名称。

可以使用 注解来简化这种情况:将最常用的 Bean 标记为 ,它将在未标记 的注入点上被选中。

在前面的示例中, 注解了 。因此,在 类中,Spring 注入了一个 Bean。当然,在 Bean 中, 字段的值将是 对象,因为它注解了 并且指定了 Bean 名称。

使用 来定义 类或 的 Scope(作用域),它可以是 、、、、 或某些自定义作用域。

例如:

可以使用本节介绍的注解来配置 Application Context。

如果我们希望 Spring 仅在特定 Profile(配置文件)处于活动状态时才启用 类或 方法,可以使用 对其进行标记。

使用注解的 参数配置 Profile 的名称:

可以使用该注解来使用特定的 类,而无需进行组件扫描。

通过 注解的 参数来提供这些类:

可以使用该注解导入 XML 配置。用 参数或其别名 参数指定 XML 文件的位置:

通过该注解,可以为应用设置定义属性文件:

利用了 Java 8 的重复注解功能,这意味着可以用它多次标记一个类:

可以使用此注解指定多个 配置:

注意,自 Java 8 以来,可以通过上述重复注解的特性来实现同样的功能。

本文介绍了 Spring 中最常用的核心注解,包括依赖注入相关的注解以及用于配置 Application Context 的注解。


Ref:

版权声明


相关文章:

  • java微信投票教程2024-12-18 20:58:06
  • java火药塔教程2024-12-18 20:58:06
  • java一维数组教程2024-12-18 20:58:06
  • java找bug教程2024-12-18 20:58:06
  • java世界创建教程2024-12-18 20:58:06
  • java算术运算教程2024-12-18 20:58:06
  • java键盘监听教程2024-12-18 20:58:06
  • java简单教程视频2024-12-18 20:58:06
  • nio java 教程2024-12-18 20:58:06
  • java 115教程2024-12-18 20:58:06