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。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值