我正在學習Java Servlet,我很好奇Apache軟件基金會爲什麼擺脫web.xml
,並讓程序員使用註釋。比使用web.xml更好地使用註釋嗎?他們之間有什麼不同?使用註釋和使用web.xml有什麼區別?
回答
沒有什麼區別,註釋只是更方便,並防止你膨脹web.xml
與數百條目(情況下更大的應用程序)。它也是Convention over configuration方法的一部分。另請注意,您不必使用註釋,仍然可以在web.xml
中註冊您的servlet。
使用XML和基於註釋的Spring配置文件都有好處和缺點。但是,它不一定是一種「或非」的決定。
這裏有一個更廣泛的問題,那就是XML vs Annotation如果你的對象模型只會以一種方式持久化,那麼內聯元數據(即註釋)更加緊湊和可讀。
但是,如果您的對象模型在不同的應用程序中被重複使用,以至於每個應用程序都希望以不同的方式持久保存模型,那麼將元數據(即XML描述符)外部化就變得更合適。
沒有一個更好,所以都支持,雖然註釋更時尚。像本地Hibernate這樣的更成熟的API提供了這兩種API,因爲衆所周知,沒有一個是足夠的。
這與Spring有什麼關係? –
Spring在創建對象的依賴項注入方面起作用,該對象從Annotation中獲取有關類的元信息。嘗試閱讀Spring Annotation上的教程但我認爲現在爲時尚早。 –
我想你已經把我和OP混淆了。 'web-xml'和'Servlet' API註釋和Spring註解是兩個獨立的東西。爲什麼你甚至提出休眠?您的答案與「Servlet」註釋無關。 –
- 1. web.xml和application.xml有什麼區別?
- 2. 使用AWSDynamoDBObjectMapper和AWSDynamoDB有什麼區別?
- 3. 使用int [] []和int [,]有什麼區別?
- 4. 使用「com.facebook.android.LoginButton」和「com.facebook.widget.LoginButton」有什麼區別?
- 5. 使用和extern有什麼區別?
- 6. 使用javac和javax.tools.JavaCompiler有什麼區別?
- 7. layout_weight和使用dp有什麼區別?
- 8. 使用WorkflowInvoker和WorkflowApplication有什麼區別?
- 9. 使用include和required()有什麼區別?
- 10. 有什麼區別使用=和:在javascript
- 11. Groovy的AnnotationNode和Java的註釋之間有什麼區別?
- 12. Spring中@PreAuthorize和@security註釋有什麼區別?
- 13. @Column註釋的jdbcType和sqlType有什麼區別?
- 14. @CascadeOnDelete和CascadeType.REMOVE註釋之間有什麼區別?
- 15. 類別和繼承有什麼區別和使用?
- 16. tornado.options.define使用部分和不使用partial有什麼區別?
- 17. 使用「this」指針和不使用它有什麼區別?
- 18. 使用ThreadPool.QueueUserWorkItem和使用System.Thread有什麼區別?
- 19. 使用Object.create()和使用賦值運算符有什麼區別?
- 20. 使用和:在ns宏中使用有什麼區別
- 21. Instanted然後使用和Uninstant使用之間有什麼區別?
- 22. 爲什麼在%中使用合併和%有什麼區別?
- 23. 是什麼區別 - , - >和 - >使用
- 24. 使用addEventListener有什麼區別?
- 25. 使用移調有什麼區別?
- 26. 使用dismissViewController時有什麼區別?
- 27. 使用!-command或system()有什麼區別?
- 28. 使用物化時有什麼區別?
- 29. 使用return語句有什麼區別?
- 30. web.xml錯誤500和struts全局異常有什麼區別?
請注意,仍有一些配置無法通過註釋實現。 –
問題中存在一些事實錯誤。 1. web.xml沒有被刪除,它仍然在最新的Servlet規範中完全支持。 2. ASF不是Servlet規範的管理者 - 也就是JCP和Servlet專家組的角色。 –