我有一些問題。關於Spring @Autowired和Spring的問題JDBC
- 在這種情況下
@Autowired
是不可取的? - 在哪種情況下,我們不得不比
Spring-Hibernate
更喜歡Spring-JDBC
? - 如果我們
autowire
所有對象會發生什麼?
請幫我在這質疑
我有一些問題。關於Spring @Autowired和Spring的問題JDBC
@Autowired
是不可取的?Spring-Hibernate
更喜歡Spring-JDBC
?autowire
所有對象會發生什麼?請幫我在這質疑
1.在這種情況下@Autowired是不是更好?
自動裝配是關於簡化依賴注入。起初看起來很容易,而且利潤豐厚,但後來你會意識到它在大型現實項目中不可維護。
默認彈簧自動裝配是by-Type
。我不喜歡它,當我有超過一個特定類別的實例時,我必須強制Spring解決注入by-Name
並且必須使用額外的@Qualifier
。在這種情況下,我更喜歡使用JAVAX @Resource
。
此外,有時您可能會遇到必須根據屬性/參數創建和注入bean的情況。在這種情況下,@Autowired
可能無法正常工作,您可能需要選擇基於XML的配置。
2.在哪種情況下,我們必須比Spring-Hibernate更喜歡Spring-JDBC?
在JDBC和Hibernate之間進行選擇的選擇完全取決於您的項目以及您認爲如何適應Hibernate。這兩種實現都非常快。這兩者都有各自的優點和缺點。
使用Spring's JDBCTemplate
會簡單一些,因爲它只是本地JDBC本身的一個包裝。這裏唯一的事情就是你最終可能會寫出數千行代碼,一旦你的項目開始增長,這些代碼真的很難維護。
使用Hibernate
將會產生一個更簡潔,更簡單的代碼,這很容易維護,但是這裏的開銷可能是學習Hibernate並以某種方式思考以使其適合您的項目。
3.如果我們自動裝載所有對象會發生什麼?
這取決於您的項目需求。 @Autowire
僅用於注入依賴關係。有時候,我們遇到了任何特定類別的多個實例,並且在這種情況下,爲了避免使用@Qualifier
和@Autowired
來消除不確定性,您可以選擇使用@Resource
單個註釋替換兩個註釋。
此外,有時您會發現通過基於XML的配置注入依賴bean,而不是使用@Autowired
更好。
如果您正在自動裝配所有課程,沒有任何傷害。正如我之前所說,完全取決於您的項目需求。
這是非常普遍的問題,你需要了解春季的基礎
@Autowire是隻能在春天的bean可以使用註解你想注入
如果你使用hibernate比你需要spring hibernate,如果你使用常規的jdbc查詢,你將需要spring jdbc
和第一節一樣,你只能在spring bean上使用autowire。沒有什麼會發生只是將是一個糟糕的設計:)
幾乎所有可以在XML中完成的bean配置都可以在JavaConfig中更簡單地完成。 – chrylis