2013-08-20 31 views
1

今天我開始學習spring了,我有一個關於在編譯註釋的java文件時註釋會發生什麼的問題? 我問這個的原因是因爲我看到當我們選擇使用xml方法和註解方法時的基本區別,以及我認爲是春天的哲學。我明白的是春天說,所有的Java類可以是簡單的pojo和所有春天相關的配置應該保持獨立(如xml文件)。編譯java文件時的Spring註解

如果使用xml * .java文件開發spring應用程序沒有關於spring容器的想法,並被編譯爲.class,而沒有任何與spring相關的依賴關係。

但是現在,當我們註釋.java文件並編譯文件時,編譯後的文件現在已經將所有彈簧相關的依賴關係強加給它,而不再是您的類簡單的pojo。

這是正確的嗎?我不確定我是否在這裏錯過了一些東西。

+0

Java vs XML配置是一個偏好問題,在大多數情況下它們是可以互換的。關注分離是另一回事,你應該通過與庫無關的接口公開你的類,以便它們不被烘焙到特定的庫中(在適當的時候)。 – gerrytan

回答

1

註解可被視爲一個類或其元素(方法,字段,局部變量...)的元數據。當你註釋時,你不會執行任何行爲。您只需提供一個元素的其他信息。

這樣,Spring負責實現bean的實例化,可以收集reflection(另請參閱this site)並進行處理。

總之,Spring的bean仍然是POJO,並且與XML方式(從這個角度來看)沒有什麼區別,因爲Spring從註釋中獲取它從XML獲得的信息。

0

我認爲你是對的,你的問題是合理的,這也是我如何看待它的方式。

不僅編譯代碼,而且還依賴於彈簧罐麻煩我。一旦你使用這個註釋,你的結果jar依賴於spring庫。

根據DDD在模型中存儲bean是合理的,但spring是某種基礎設施層,所以我不喜歡依賴關係。

即使您使用XML,對於少數人使用屬性也很有用。例如。 @Required屬性,這對驗證鏈接的bean是否被注入很有用。所以,我決定使用構造函數依賴注入來省略此屬性,請參見my article。我完全忽略了代碼中對spring的依賴。

您可能很容易找到這樣的思維掛鉤您想要/強制使用的許多註釋。

0

您可以將註釋僅用於您的配置類,而不將它們標記爲實際的bean類。在這種情況下,如果你不使用spring,你只是不加載配置類。