回答
getBean()
是大小寫敏感的,但是Spring使用定製的bean命名策略@Component
和@Bean
類。見4.10.5 Naming autodetected components:
當組件被自動檢測作爲掃描過程的一部分,由
BeanNameGenerator
策略生成bean名稱[...]。默認情況下,包含name
值的任何Spring原型註釋(@Component
,@Repository
,@Service
和@Controller
)都會將該名稱提供給相應的bean定義。如果這樣的註釋不包含
name
值或用於任何其他檢測到的成分(如那些由自定義過濾器發現),則默認bean名稱發生器返回小寫形式非限定類名。
而對於@Configuration
/@Bean
看到4.12.4.5 Customizing bean naming:
默認情況下,配置類使用
@Bean
方法的名稱所產生的bean的名字。但是,此功能可以被覆蓋,name
屬性。
回到你的問題。因爲你的類沒有下面的Java命名約定(駝峯名)Spring使用不同尋常的名字爲bean,這將工作:
getBean("TEST")
但是如果你使用的預期命名(@Component class Test { }
),您必須使用小寫標識符:
getBean("test")
此外,如果你的名字是比較複雜的,小寫形式駝峯語法適用(繼續引用Spring documentation):
[...]例如,如果檢測到下面的兩個組成部分,名字是
myMovieLister
和movieFinderImpl
:
@Service("myMovieLister")
public class SimpleMovieLister {
// ...
}
@Repository
public class MovieFinderImpl implements MovieFinder {
// ...
}
感謝Tomasz。這比我的期望更復雜。如果我的類是類似@Component類的TestTree,我可以使用getBean(「testTree」)加載它嗎? – user496949
@ user496949:正好。其實這並不複雜。您可能會使用同一個名稱來存放一個類型爲「TestTree」的變量。此外,你現在應該使用靜態類型的'getBean(TestTree.class)' –
@Component
註釋默認情況下,如果沒有明確給出一個名稱,將使用Introspector.decapitalize()
方法對bean使用AnnotationBeanNameGenerator
ClassName獲取bean的名稱。通常,名稱類似「Test」的類將給它一個bean名稱「test」。但decapitalize
具有好奇心:
這通常意味着從上部殼體小寫轉換的第一個字符到 ,但在(異常)的特殊情況下,當存在多於 一個字符,所述第一和第二字符大寫, 我們保持獨立。
所以你的class TEST
將得到豆名TEST
。
- 1. 春天沒有的getBean(..)
- 2. 春天cacheManager不是單身?
- 3. 春天.getBean(...)在Struts應用程序,而不主要方法
- 4. 使用getBean而不是春季的方法注入
- 5. 春天 - 什麼是豆,什麼不是?
- 6. 什麼春季豆類和春天的情況下使用?
- 7. 是否可以使用不敏感的情況過濾TClientDataset?
- 8. 檢查如果文本是數組,但不是一個情況下,PHP敏感
- 9. 春天JPARepository不懶還是渴望
- 10. 春天@Value不是從屬性文件
- 11. 找出一個人是如何感覺?
- 12. 部分只是沒了感覺我
- 13. 春天是否支持SharePoint
- 14. 什麼是春天的Hystrix?
- 15. 是不是在給定的情況下
- 16. 情況下鈍感TXT
- 17. Solr的情況下鈍感
- 18. 意外情況敏感
- 19. 駱駝春天是否與春天ws 2.0.2.RELEASE兼容?
- 20. 什麼是春天2.5.6春之間的不同2.5.6.SEC01
- 21. rabbitmq與春天amqp - 消息卡住的情況下AmqpException
- 22. 用jpa和hibernate模擬春天mvc的情況
- 23. Rails 3 - RSpec感覺不對
- 24. vim的情況下,敏感不敏感的搜索替換
- 25. 春季整合是否適合這種情況?
- 26. 春天是不是自動裝配我的過濾器類
- 27. 春天圖片的URL是不是在ipad
- 28. 春天的佈線是幅度不是名稱
- 29. 春天ACL - 主/ SID不是用戶,而是另一個實體
- 30. 春天XD文件作爲源數據流的情況下不工作
你試過像這樣加載bean嗎? –