@Bean和@Component之間的區別?
@Bean和@Component都是將Spring Bean新增到Spring Context中。結果是一樣的。有什麼不同?
@Bean
@Bean與配置類(使用@Configuration)一起工作,因此使用在基於配置中。也可用在配置類的方法中。告訴Spring將方法返回的任何內容新增到Spring Context中。
預設情況下,它將使用方法的名稱作為bean的id / name(類似XML配置:bean id=xxxx)。另一種方法是,您可以在@Bean註釋中指定它。
我們明確宣告瞭bean。
@Component
@Component用於我們的類,它只有在我們的SpringBoot應用程式啟用了元件掃描並且包含了我們的類時才有效。
透過元件掃描,Spring將掃描整個類路徑,並將所有@Component註釋類新增到Spring Context(具有可調整的Filtering)。
我們讓Spring發現了bean
區別
兩個註釋的結果是相同的,bean都會被新增到Spring上下文中。但是,有一些問題需要注意。
假設我們有一個需要在多個應用程式中共享的模組,這個模組包含了一些服務,但並非所有應用都需要這些服務。
如果在這些服務類上使用@Component並在應用程式中使用元件掃描,我們最終可能會檢測到超過必要的bean數量,不不需要的Bean也掃描載入了。這時候必須調整元件掃描的過濾或提供即使未使用的bean也可以執行的配置,否則,Spring應用程式上下文將無法啟動。
在這種情況下,最好使用@Bean註釋並僅例項化那些在每個應用程式中單獨需要的bean。
相關文章
- @Component和@Bean的區別Bean
- @bean和@component的理解Bean
- 敏捷和 Scrum 之間的區別敏捷Scrum
- Statement和PreparedStatement之間的區別
- React.createClass和extends Component的區別React
- MVC,MVP和MVVM之間的區別MVCMVPMVVM
- reboot和init 6之間的區別boot
- querySelector和getElementById之間的區別
- tali -f 和 tail -F 之間的區別AI
- 公共雲和私有云之間的區別
- 【轉】理解 CI 和 CD 之間的區別
- cookie、 sessionStorage 、localStorage之間的區別和使用CookieSession
- [提問]實體bean和會話bean之間的cacheBean會話
- Linux和windows系統之間的區別LinuxWindows
- CI和CD之間的真正區別 -Fire CI
- Kata和Kaizen之間的區別是什麼?AI
- Git 和 SVN 之間的五個基本區別Git
- GIT和SVN之間的五個基本區別Git
- @Component, @Repository, @Service的區別
- Spring中@Component和@Configuration的區別Spring
- React之元件(component)之間的通訊React元件
- Vue中computed、methods和watch之間的區別Vue
- 淺談querySelector和getElementById之間的區別
- 函式節流和去抖之間的區別函式
- [譯] Jquery中 .bind() .live() .delegate() 和 .on() 之間的區別jQuery
- Struts中ActionForm Bean和valueObject之間的問題ORMBeanObject
- Java Bean 與 EJB的區別JavaBean
- Oracle與OpenJDK之間的區別OracleJDK
- PrepareStatement與Statement之間的區別REST
- Java(3)-POJO和Java bean的區別是什麼JavaPOJOBean
- ASP.NET Core中GetService()和GetRequiredService()之間的區別ASP.NETUI
- 尋源和採購之間的區別是什麼?
- Android Bitmap 與 Drawable之間的區別和轉換Android
- nodejs和js之間有什麼區別?NodeJS
- 27、EJB與JAVA BEAN的區別?JavaBean
- java bean 與 ejb的區別 (轉)JavaBean
- CST和GMT時間的區別
- select、poll、epoll之間的區別