2016-01-27 120 views

回答

3

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更好。

如果您正在自動裝配所有課程,沒有任何傷害。正如我之前所說,完全取決於您的項目需求。

+2

幾乎所有可以在XML中完成的bean配置都可以在JavaConfig中更簡單地完成。 – chrylis

-2

這是非常普遍的問題,你需要了解春季的基礎

  1. @Autowire是隻能在春天的bean可以使用註解你想注入

  2. 如果你使用hibernate比你需要spring hibernate,如果你使用常規的jdbc查詢,你將需要spring jdbc

  3. 和第一節一樣,你只能在spring bean上使用autowire。沒有什麼會發生只是將是一個糟糕的設計:)