Spring bean名称策略

 更新时间:2026年02月06日 11:07:11   作者:zsyf1987  
本文给大家总结了Spring bean名称策略,通过控制bean的命名,可以告诉 Spring 要将哪个bean注入目标对象,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

1.概述

当有多个相同类型的实现时,命名一个Spring bean非常有用。这是因为 bean 没有唯一的名称,那么注入 bean 对 Spring 来说是不明确的。

通过控制 bean 的命名,可以告诉 Spring 要将哪个 bean 注入目标对象。

2.默认 Bean 命名策略

Spring为创建 bean提供了多个注解,可以在不同的层次上使用这些注解。例如,可以在 bean 类上放置一些注解,而在创建 bean 的方法上放置一些注解。

首先,来看 Spring 的默认命名策略在。当只指定注解而没有任何值时,Spring 如何命名 bean?

2.1.类级注释

从在类级别使用的注解默认命名策略开始。为了命名一个 bean,Spring 使用类名并将第一个字母转换为小写

来看一个例子:

@Service
public class LoggingService {
}

在这里,Spring 为类_LoggingService_创建一个 bean,并使用名称“ loggingService ”注册它。

同样的默认命名策略适用于所有用于创建 Spring bean 的类级别注解,例如*@Component*、_@Service_和*@Controller*。

2.2. 方法级注解

Spring 提供了*@Bean_和_@Qualifier*类的注解,用于创建 bean 的方法。

看一个例子来理解*@Bean*注解的默认命名策略:

@Configuration
public class AuditConfiguration {
    @Bean
    public AuditService audit() {
          return new AuditService();
    }
}

在这个配置类中,Spring在名称“audit ”下注册了一个**AuditService类型的 bean,当在方法上使用@Bean注解时,Spring 使用方法名称作为 bean 名称。

还可以在方法上使用*@Qualifier*注解

3. bean的自定义命名

当需要在同一个 Spring 上下文中创建多个相同类型的 bean 时,可以为这些 bean 提供自定义名称并使用这些名称来引用它们。

下面例子 如何给 Spring bean 一个自定义名称:

@Component("myBean")
public class MyCustomComponent {
}

这一次,Spring 将创建名为“ myBean”的MyCustomComponent类型的 bean 。

由于明确地为 bean 命名,Spring 将使用这个名称,然后可以使用它来引用或访问 bean。

与*@Component(“myBean”)类似,可以使用*@Service(“myService”)、@Controller(“myController”)和@Bean(“myCustomBean”)等其他注解来指定名称,然后Spring 会注册具有给定名称的 bean。

到此这篇关于Spring bean名称的文章就介绍到这了,更多相关Spring bean名称内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现优雅停止线程的有效方法详解

    Java实现优雅停止线程的有效方法详解

    这篇文章主要为大家详细如何安全有效停止 Java 线程的,确保多线程应用程序平稳运行并实现最佳资源管理,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12
  • springboot验证码生成以及验证功能举例详解

    springboot验证码生成以及验证功能举例详解

    登录注册是大部分系统需要实现的基本功能,同时也会对登录验证增加需求,下面这篇文章主要给大家介绍了关于springboot验证码生成以及验证功能的相关资料,需要的朋友可以参考下
    2023-04-04
  • Java中SSM框架实现增删改查功能代码详解

    Java中SSM框架实现增删改查功能代码详解

    这篇文章主要介绍了Java中SSM框架实现增删改查功能代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java求解二叉树的最近公共祖先实例代码

    Java求解二叉树的最近公共祖先实例代码

    树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合,这篇文章主要给大家介绍了关于Java求解二叉树的最近公共祖先的相关资料,需要的朋友可以参考下
    2021-06-06
  • 使用Java Api操作HDFS过程详解

    使用Java Api操作HDFS过程详解

    这篇文章主要介绍了使用Java Api操作HDFS过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Java解析XML的四种方法详解

    Java解析XML的四种方法详解

    XML现在已经成为一种通用的数据交换格式,平台的无关性使得很多场合都需要用到XML。本文将详细介绍用Java解析XML的四种方法
    2012-10-10
  • 基于Java数组实现循环队列的两种方法小结

    基于Java数组实现循环队列的两种方法小结

    下面小编就为大家分享一篇基于Java数组实现循环队列的两种方法小结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • java实现KFC点餐小程序

    java实现KFC点餐小程序

    这篇文章主要为大家详细介绍了java实现KFC点餐系统小程序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • spring-retry组件的使用教程

    spring-retry组件的使用教程

    Spring Retry的主要目的是为了提高系统的可靠性和容错性,当方法调用失败时,Spring Retry可以在不影响系统性能的情况下,自动进行重试,从而减少故障对系统的影响,这篇文章主要介绍了spring-retry组件的使用,需要的朋友可以参考下
    2023-06-06
  • htmlcleaner使用方法及xpath语法初探

    htmlcleaner使用方法及xpath语法初探

    HtmlCleaner是一个开源的Java语言的Html文档解析器。HtmlCleaner能够重新整理HTML文档的每个元素并生成结构良好(Well-Formed)的 HTML 文档
    2015-08-08

最新评论