Spring bean名稱策略
1.概述
當(dāng)有多個相同類型的實現(xiàn)時,命名一個Spring bean非常有用。這是因為 bean 沒有唯一的名稱,那么注入 bean 對 Spring 來說是不明確的。
通過控制 bean 的命名,可以告訴 Spring 要將哪個 bean 注入目標對象。
2.默認 Bean 命名策略
Spring為創(chuàng)建 bean提供了多個注解,可以在不同的層次上使用這些注解。例如,可以在 bean 類上放置一些注解,而在創(chuàng)建 bean 的方法上放置一些注解。
首先,來看 Spring 的默認命名策略在。當(dāng)只指定注解而沒有任何值時,Spring 如何命名 bean?
2.1.類級注釋
從在類級別使用的注解默認命名策略開始。為了命名一個 bean,Spring 使用類名并將第一個字母轉(zhuǎn)換為小寫。
來看一個例子:
@Service
public class LoggingService {
}
在這里,Spring 為類_LoggingService_創(chuàng)建一個 bean,并使用名稱“ loggingService ”注冊它。
同樣的默認命名策略適用于所有用于創(chuàng)建 Spring bean 的類級別注解,例如*@Component*、_@Service_和*@Controller*。
2.2. 方法級注解
Spring 提供了*@Bean_和_@Qualifier*類的注解,用于創(chuàng)建 bean 的方法。
看一個例子來理解*@Bean*注解的默認命名策略:
@Configuration
public class AuditConfiguration {
@Bean
public AuditService audit() {
return new AuditService();
}
}在這個配置類中,Spring在名稱“audit ”下注冊了一個**AuditService類型的 bean,當(dāng)在方法上使用@Bean注解時,Spring 使用方法名稱作為 bean 名稱。
還可以在方法上使用*@Qualifier*注解
3. bean的自定義命名
當(dāng)需要在同一個 Spring 上下文中創(chuàng)建多個相同類型的 bean 時,可以為這些 bean 提供自定義名稱并使用這些名稱來引用它們。
下面例子 如何給 Spring bean 一個自定義名稱:
@Component("myBean")
public class MyCustomComponent {
}
這一次,Spring 將創(chuàng)建名為“ myBean”的MyCustomComponent類型的 bean 。
由于明確地為 bean 命名,Spring 將使用這個名稱,然后可以使用它來引用或訪問 bean。
與*@Component(“myBean”)類似,可以使用*@Service(“myService”)、@Controller(“myController”)和@Bean(“myCustomBean”)等其他注解來指定名稱,然后Spring 會注冊具有給定名稱的 bean。
到此這篇關(guān)于Spring bean名稱的文章就介紹到這了,更多相關(guān)Spring bean名稱內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Boot 的創(chuàng)建和運行示例代碼詳解
Spring Boot 的誕生是為了簡化Spring程序的開發(fā),今天給大家介紹下Spring Boot 的創(chuàng)建和運行,主要包括Spring Boot基本概念和springboot優(yōu)點,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2022-07-07
Spring?AI?Ollama連接本地模型超時問題的完全解決指南
在SpringBoot3.2中使用spring-aillama連接本地Ollama模型時遇到超時問題,本文詳細分析了原因并提供了解決方案,通過自定義OllamaApiBean構(gòu)建帶超時的OkHttpClient,解決了常規(guī)配置無效的問題,需要的朋友可以參考下2026-06-06
Java Swing組件單選框JRadioButton用法示例
這篇文章主要介紹了Java Swing組件單選框JRadioButton用法,結(jié)合具體實例形式分析了Swing單選框JRadioButton的使用方法及相關(guān)操作注意事項,需要的朋友可以參考下2017-11-11
SpringBoot整合RabbitMQ實現(xiàn)RPC遠程調(diào)用功能
在分布式系統(tǒng)中,RPC(Remote?Procedure?Call)是一種常用的通信機制,它可以讓不同的節(jié)點之間像調(diào)用本地函數(shù)一樣進行函數(shù)調(diào)用,隱藏了底層的網(wǎng)絡(luò)通信細節(jié),通過本教程,你可以了解RPC的基本原理以及如何使用Java實現(xiàn)一個簡單的RPC客戶端和服務(wù)端2023-06-06

