版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/little_newBee/article/details/80383691
在使用spring的過程中,一直都看到寫代碼時@Bean總是與@Configuration一起使用,那么是否真的是使用@Bean一定需要@Configuration呢?? 查了很多資料,終於找到了。鑒於大部分國內查到的資料不沒有關於這個問題的解釋,即一篇博客記錄下來,有同類疑惑的人可以看一下。
@Bean作用於方法上,想單獨使用肯定是不可能的了,想想也知道,起碼要掃描到類嘛(拋除配置文件方式,只說單純在使用注解的情況),因此在需要在該類上使用@Component/@Configuration/@Service 等注解,@Service這種注解其實只是說在可讀性上增加了,一般要使用@Bean時,不會用這類注解標注,畢竟沒人在service類中寫這種方法吧……,因此一般見過的就是兩種@Component/@Configuration,那么區別在哪里呢??
網上找到的英文解釋我給翻譯一下(英語太爛,湊合看……):
上面這個小例子是從網上截取的一個圖片,希望原作者不要打我……。
注意箭頭指向,在一個@Bean標注的方法中,調用了另一個@Bean注釋的方法。
現在是使用@Configuration注解,此時調用dataSource() 方法返回的是被Spring管理的單例Bean。
如果換做是@Component 注解,那么調用了dataSource() 方法返回的對象是執行這個方法返回的對象實例,而不是被spring管理的對象。
這就是差別所在。