欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring的注解配置與XML配置之間的比較

 更新時(shí)間:2013年09月11日 09:22:09   作者:  
在很多情況下,注釋配置比 XML 配置更受歡迎,注釋配置有進(jìn)一步流行的趨勢(shì)。Spring 2.5 的一大增強(qiáng)就是引入了很多注釋類,現(xiàn)在您已經(jīng)可以使用注釋配置完成大部分 XML 配置的功能

注釋配置相對(duì)于 XML 配置具有很多的優(yōu)勢(shì):
它可以充分利用 Java 的反射機(jī)制獲取類結(jié)構(gòu)信息,這些信息可以有效減少配置的工作。如使用 JPA 注釋配置 ORM 映射時(shí),我們就不需要指定 PO 的屬性名、類型等信息,如果關(guān)系表字段和 PO 屬性名、類型都一致,您甚至無需編寫任務(wù)屬性映射信息——因?yàn)檫@些信息都可以通過 Java 反射機(jī)制獲取。

注釋和 Java 代碼位于一個(gè)文件中,而 XML 配置采用獨(dú)立的配置文件,大多數(shù)配置信息在程序開發(fā)完成后都不會(huì)調(diào)整,如果配置信息和 Java 代碼放在一起,有助于增強(qiáng)程序的內(nèi)聚性。而采用獨(dú)立的 XML 配置文件,程序員在編寫一個(gè)功能時(shí),往往需要在程序文件和配置文件中不停切換,這種思維上的不連貫會(huì)降低開發(fā)效率。

因此在很多情況下,注釋配置比 XML 配置更受歡迎,注釋配置有進(jìn)一步流行的趨勢(shì)。Spring 2.5 的一大增強(qiáng)就是引入了很多注釋類,現(xiàn)在您已經(jīng)可以使用注釋配置完成大部分 XML 配置的功能。

注釋配置和 XML 配置的適用場(chǎng)合
是否有了這些 IOC 注釋,我們就可以完全摒除原來 XML 配置的方式呢?答案是否定的。有以下幾點(diǎn)原因:
注釋配置不一定在先天上優(yōu)于 XML 配置。如果 Bean 的依賴關(guān)系是固定的,(如 Service 使用了哪幾個(gè) DAO 類),這種配置信息不會(huì)在部署時(shí)發(fā)生調(diào)整,那么注釋配置優(yōu)于 XML 配置;反之如果這種依賴關(guān)系會(huì)在部署時(shí)發(fā)生調(diào)整,XML 配置顯然又優(yōu)于注釋配置,因?yàn)樽⑨屖菍?duì) Java 源代碼的調(diào)整,您需要重新改寫源代碼并重新編譯才可以實(shí)施調(diào)整。

如果 Bean 不是自己編寫的類(如 JdbcTemplate、SessionFactoryBean 等),注釋配置將無法實(shí)施,此時(shí) XML 配置是唯一可用的方式。

注釋配置往往是類級(jí)別的,而 XML 配置則可以表現(xiàn)得更加靈活。比如相比于 @Transaction 事務(wù)注釋,使用 aop/tx 命名空間的事務(wù)配置更加靈活和簡(jiǎn)單。

所以在實(shí)現(xiàn)應(yīng)用中,我們往往需要同時(shí)使用注釋配置和 XML 配置,對(duì)于類級(jí)別且不會(huì)發(fā)生變動(dòng)的配置可以優(yōu)先考慮注釋配置;而對(duì)于那些第三方類以及容易發(fā)生調(diào)整的配置則應(yīng)優(yōu)先考慮使用 XML 配置。Spring 會(huì)在具體實(shí)施 Bean 創(chuàng)建和 Bean 注入之前將這兩種配置方式的元信息融合在一起。

小結(jié)
Spring 在 2.1 以后對(duì)注釋配置提供了強(qiáng)力的支持,注釋配置功能成為 Spring 2.5 的最大的亮點(diǎn)之一。合理地使用 Spring 2.5 的注釋配置,可以有效減少配置的工作量,提高程序的內(nèi)聚性。但是這并不意味著傳統(tǒng) XML 配置將走向消亡,在第三方類 Bean 的配置,以及那些諸如數(shù)據(jù)源、緩存池、持久層操作模板類、事務(wù)管理等內(nèi)容的配置上,XML 配置依然擁有不可替代的地位。

相關(guān)文章

  • SpringBoot線上環(huán)境徹底關(guān)閉Swagger-UI的方式

    SpringBoot線上環(huán)境徹底關(guān)閉Swagger-UI的方式

    這篇文章主要給大家介紹了SpringBoot線上環(huán)境徹底關(guān)閉Swagger-UI的方式,文中給出了詳細(xì)的代碼示例供大家參考,對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • 詳解springMVC兩種方式實(shí)現(xiàn)多文件上傳及效率比較

    詳解springMVC兩種方式實(shí)現(xiàn)多文件上傳及效率比較

    本篇文章介紹了springMVC兩種方式實(shí)現(xiàn)多文件上傳及效率比較。springMVC實(shí)現(xiàn)多文件上傳有兩種,一種是字節(jié)流的方式進(jìn)行文件上傳,另外一種是使用springMVC包裝好的解析器進(jìn)行上傳,有興趣的可以了解一下。
    2016-12-12
  • 淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn)

    淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn)

    這篇文章主要介紹了淺析SpringBoot自動(dòng)化配置原理實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝

    Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝

    這篇文章主要介紹了Spring如何集成ibatis項(xiàng)目并實(shí)現(xiàn)dao層基類封裝,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Java 冒泡排序、快速排序?qū)嵗a

    Java 冒泡排序、快速排序?qū)嵗a

    這篇文章主要介紹了Java 冒泡排序、快速排序?qū)嵗a,需要的朋友可以參考下
    2017-05-05
  • Java創(chuàng)建線程的七種方法總結(jié)(全網(wǎng)最全面)

    Java創(chuàng)建線程的七種方法總結(jié)(全網(wǎng)最全面)

    線程是Java中的基本執(zhí)行單元,它允許程序在同一時(shí)間執(zhí)行多個(gè)任務(wù),下面這篇文章主要給大家總結(jié)介紹了關(guān)于Java創(chuàng)建線程的七種方法,文中通過實(shí)例代碼將這七種方法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Java 關(guān)于String字符串原理上的問題

    Java 關(guān)于String字符串原理上的問題

    字符串廣泛應(yīng)用 在 Java 編程中,在 Java 中字符串屬于對(duì)象,Java 提供了 String 類來創(chuàng)建和操作字符串,讓我們一起來了解它
    2022-04-04
  • SpringBoot熱部署啟動(dòng)關(guān)閉流程詳解

    SpringBoot熱部署啟動(dòng)關(guān)閉流程詳解

    Spring?Boot啟動(dòng)熱部署是一種技術(shù),它能讓開發(fā)者在不重啟應(yīng)用程序的情況下實(shí)時(shí)更新代碼。這樣可以提高開發(fā)效率,避免頻繁重啟應(yīng)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-04-04
  • SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn)

    SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn)

    本文主要介紹了SpringBoot中打印SQL語(yǔ)句的幾種方法實(shí)現(xiàn),,通過打印SQL語(yǔ)句可以幫助開發(fā)人員快速了解數(shù)據(jù)庫(kù)的操作情況,進(jìn)而進(jìn)行性能分析和調(diào)試,感興趣的可以了解一下
    2023-11-11
  • java對(duì)象拷貝詳解及實(shí)例

    java對(duì)象拷貝詳解及實(shí)例

    這篇文章主要介紹了java對(duì)象拷貝詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評(píng)論