簡體   English   中英

@ Autowired,@ Resource和使用屬性注入的春季性能

[英]Spring performance for @Autowired, @Resource and using property injection

我的問題是,在以下使用Spring進行依賴注入的情況之間,是否存在明顯的性能差異:

  • Java文件中的@Resource(name = ...)
  • Java文件中的@Autowired
  • java文件中的setter和spring-beans.xml文件中的<屬性名=“ ...” ref =“ ...” />

性能應該在運行時和系統初始化期間及時進行測量。 假設:所有bean都屬於scope =“ singleton”。

我以這種方式與Spring合作還很陌生,因此,如果我缺少任何細節或問題不相關,請告訴我。

謝謝

在具有單例作用域和合理的應用程序的情況下,它不會有太大的區別,除非您使用大量的惰性bean定義,否則性能差異將取決於應用程序的啟動時間。

讓我們來看三個例子:

  1. @Resource按名稱注入,因此實際上是每個鍵的查找(快速)
  2. @Autowired本質上是按類型進行的查找這意味着容器必須能夠知道在應用程序上下文中定義的托管bean的類型。 這有點慢
  3. 您的示例中的XML配置是關鍵參考(快速)

如果您有合理的申請,那並不重要。 如果您的應用程序具有10k個類,並且在根包中配置了類路徑掃描,則類路徑掃描可能會花費一些時間,尤其是如果這些類不在jar文件中(按目錄中的類型查找要慢得多)。

除了接線bean的性能成本通常位於應用程序的啟動階段之外,您的問題沒有最終答案。 一旦上下文啟動,就從高速緩存中檢索單例bean。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM