Spring bean名稱策略
1.概述
當(dāng)有多個相同類型的實現(xiàn)時,命名一個Spring bean非常有用。這是因為 bean 沒有唯一的名稱,那么注入 bean 對 Spring 來說是不明確的。
通過控制 bean 的命名,可以告訴 Spring 要將哪個 bean 注入目標(biāo)對象。
2.默認(rèn) Bean 命名策略
Spring為創(chuàng)建 bean提供了多個注解,可以在不同的層次上使用這些注解。例如,可以在 bean 類上放置一些注解,而在創(chuàng)建 bean 的方法上放置一些注解。
首先,來看 Spring 的默認(rèn)命名策略在。當(dāng)只指定注解而沒有任何值時,Spring 如何命名 bean?
2.1.類級注釋
從在類級別使用的注解默認(rèn)命名策略開始。為了命名一個 bean,Spring 使用類名并將第一個字母轉(zhuǎn)換為小寫。
來看一個例子:
@Service
public class LoggingService {
}
在這里,Spring 為類_LoggingService_創(chuàng)建一個 bean,并使用名稱“ loggingService ”注冊它。
同樣的默認(rèn)命名策略適用于所有用于創(chuàng)建 Spring bean 的類級別注解,例如*@Component*、_@Service_和*@Controller*。
2.2. 方法級注解
Spring 提供了*@Bean_和_@Qualifier*類的注解,用于創(chuàng)建 bean 的方法。
看一個例子來理解*@Bean*注解的默認(rèn)命名策略:
@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)文章
Java實現(xiàn)優(yōu)雅停止線程的有效方法詳解
這篇文章主要為大家詳細(xì)如何安全有效停止 Java 線程的,確保多線程應(yīng)用程序平穩(wěn)運行并實現(xiàn)最佳資源管理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
基于Java數(shù)組實現(xiàn)循環(huán)隊列的兩種方法小結(jié)
下面小編就為大家分享一篇基于Java數(shù)組實現(xiàn)循環(huán)隊列的兩種方法小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2017-12-12

