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名称内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Data Jpa框架最佳实践示例

    Spring Data Jpa框架最佳实践示例

    这篇文章主要为大家介绍了Spring Data Jpa框架最佳实践示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-02-02
  • Spring Boot 的创建和运行示例代码详解

    Spring Boot 的创建和运行示例代码详解

    Spring Boot 的诞生是为了简化Spring程序的开发,今天给大家介绍下Spring Boot 的创建和运行,主要包括Spring Boot基本概念和springboot优点,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2022-07-07
  • Java获取Cookie里的指定值的实现方法

    Java获取Cookie里的指定值的实现方法

    在Java中,我们经常需要从HTTP请求中获取Cookie,并从中提取特定的值,下面我们将介绍如何通过Java代码获取Cookie中的指定值,文章通过代码示例介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • Spring AI Ollama连接本地模型超时问题的完全解决指南

    Spring AI Ollama连接本地模型超时问题的完全解决指南

    在SpringBoot3.2中使用spring-aillama连接本地Ollama模型时遇到超时问题,本文详细分析了原因并提供了解决方案,通过自定义OllamaApiBean构建带超时的OkHttpClient,解决了常规配置无效的问题,需要的朋友可以参考下
    2026-06-06
  • Spring MVC处理响应的案例详解

    Spring MVC处理响应的案例详解

    当服务器向客户端响应数据时,SpringMVC框架会使用“转换器”(Converter)将方法的返回值进行转换,SpringMVC框架还会自动使用不同的转换器,因此这篇文章就给大家详细介绍一下Spring MVC如何处理响应并附上案例,需要的朋友可以参考下
    2023-06-06
  • Java中守护线程介绍及使用

    Java中守护线程介绍及使用

    大家好,本篇文章主要讲的是Java中守护线程介绍及使用,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Java Swing组件单选框JRadioButton用法示例

    Java Swing组件单选框JRadioButton用法示例

    这篇文章主要介绍了Java Swing组件单选框JRadioButton用法,结合具体实例形式分析了Swing单选框JRadioButton的使用方法及相关操作注意事项,需要的朋友可以参考下
    2017-11-11
  • Java中左移和右移问题图文详解

    Java中左移和右移问题图文详解

    左移和右移并不常用,在一些特殊情况下才会使用,比如加解密时,会大量用到,这篇文章主要给大家介绍了关于Java中左移和右移问题的相关资料,需要的朋友可以参考下
    2021-11-11
  • SpringBoot整合RabbitMQ实现RPC远程调用功能

    SpringBoot整合RabbitMQ实现RPC远程调用功能

    在分布式系统中,RPC(Remote Procedure Call)是一种常用的通信机制,它可以让不同的节点之间像调用本地函数一样进行函数调用,隐藏了底层的网络通信细节,通过本教程,你可以了解RPC的基本原理以及如何使用Java实现一个简单的RPC客户端和服务端
    2023-06-06
  • java使用for循环输出杨辉三角

    java使用for循环输出杨辉三角

    杨辉三角形由数字排列,可以把它看做一个数字表,其基本特性是两侧数值均为1,其他位置的数值是其正上方的数字与左上角数值之和,下面是java使用for循环输出包括10行在内的杨辉三角形
    2014-02-02

最新评论