亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring的Xml和JavaConfig 擴展哪個好用

 更新時間:2021年05月26日 10:20:57   作者:java金融  
今天給大家介紹基于注解的Spring擴展,Spring的Xml和JavaConfig 擴展的配置方法,關于Spring的Xml和JavaConfig 擴展你會選哪個呢,帶著這個問題一起通過本文學習下吧

引言

上一篇文章我們有怎么介紹到如何通過XML的形式來定義Spring的擴展《Spring面試高頻題如何:自定義XML schema 擴展》,好多人都在吐槽現(xiàn)在都什么年代了,xml還有人再用嗎?這玩意早就過時了吧,還有必要去掌握它嗎?Spring官網(wǎng)都把這種方式放在最后面了,可想而知它的重要性到底怎樣了?既然大家都吐槽了,那我們今天繼續(xù)來介紹下基于注解的Spring擴展。

JavaConfig 配置擴展

從Spring3.0開始Spring提供了JavaConfig的方式可以用來代替以前XML的這種方式,原來在XML配置里的都可以通過注解來一一替換實現(xiàn)。主要通過@Configuration,@Bean, @Import,和@DependsOn這幾個注解來搭配實現(xiàn)的。這種方式也是SpringBoot所使用的。

@Configuration

@Configuration只能標記在類上,表示該類為JavaConfig類,使其可以被Spring IOC容器掃描識別并創(chuàng)建Bean加入到容器中。@Configuration類就相當于以往的一個xml文件。下面我們看一個官網(wǎng)提供的例子:

@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyServiceImpl();
    }

這個定義的JavaConfig就相當于原來如下XML的配置:

<beans>
    <bean id="myService" class="cn.javajr.services.MyServiceImpl"/>
</beans>

@Bean

@Bean只能被標記在方法上,表示該方法返回一個Spring Bean,可以被IOC容器托管,相當于以前在xml文件中寫的元素。

  1. name:指定一個或者多個bean的名字,當沒有設置name時,Spring容器會默認將@Bean方法名作為bean name,當設置了name后,就不會再使用方法名,同時設置多個name時,除第一個name外,其他的都會作為bean的別名。相當于xml配置中的name屬性。
  2. initMethod:指定容器在初始化完bean后調(diào)用的方法。相當于xml配置中的init-method屬性。
  3. destroyMethod:指定在容器在銷毀bean前調(diào)用的方法。相當于xml配置中的 destroy-method。
  4. autowire:指定bean在自動裝配時依賴注入使用的策略,取值可以參考Enum類Autowire 的三個常量:Autowire.BY_NAME,Autowire.BY_TYPE,Autowire.NO。

@Import

XML配置中的標簽,基于JavaConfig提供了@Import來組合模塊化的配置類,使用方式如下所示:

@Configuration()  
@Import({ApplicationContextConfig.class})  
public class ApplicationContextConfig {

上面就比較簡單的介紹了幾種通過JavaConfig注解來替換XML形式的注解,使用起來還是非常簡單的,如果你有對以前的XML配置文件都比較了解的話,使用JavaConfig就更加簡單方便了。

Dubbo的JavaConfig

上篇文章我們介紹了dubbo通過XML的方式自定義擴展,今天我們就接著看看dubbo是如何通過JavaConfig來替代XML形式的擴展的。
我們看看dubbo的服務提供者是如何通過注解來實現(xiàn)的

@Configuration
@EnableDubbo(scanBasePackages = "org.apache.dubbo.samples.annotation.impl")
@PropertySource("classpath:/spring/dubbo-provider.properties")
static class ProviderConfiguration {
}

@Configuration這個注解我們上面已經(jīng)介紹過了,我們重點看下@EnableDubbo這個注解
@EnableDubbo 其實又是@EnableDubboConfig @DubboComponentScan是通過這兩個組合注解來實現(xiàn)的,
@EnableDubboConfig注解實現(xiàn)如下:

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
@Import(DubboConfigConfigurationRegistrar.class)
public @interface EnableDubboConfig {

這個注解使用了@Import(DubboConfigConfigurationRegistrar.class) 所以Spring 在處理
@EnableDubboConfig 注解 的時候就會去實例化DubboConfigConfigurationRegistrar
并且調(diào)用它的registerBeanDefinitions方法,這個方法主要是對propties文件進行解析并根據(jù)不同的配置
項生成對應類型的Bean對象。

總結(jié)

  • 通過基于XML和基于Java的配置擴展,可以使用戶通過Spring使用我們研發(fā)的組件,提供很好的易用性。
  • 雖然現(xiàn)在大多數(shù)都是采用JavaConfig這種方式了,但是還是有人會比較喜歡xml這種方式
  • xml可以讓配置集中化,所有的組件并不是分散的,因此使你對beans有一個很好的概覽,比如mybais配置文件、SpingMvc配置文件,都放在一起,如果你需要分割文件,Spring可以幫你實現(xiàn)。然后(Spring)會通過內(nèi)部標簽進行重新組合或者外部上下文文件進行聚合。
  • xml和JavaConfig 當然也是可以混合使用的,至于使用哪種方式還是看個人的編程習慣,沒有哪種方式是絕對的好,各有千秋。
  • 看完這兩篇關于不同方式Spring的 擴展我們是不是可以自己動手去實現(xiàn)一個了。

以上就是Spring的Xml和JavaConfig 擴展哪個好的詳細內(nèi)容,更多關于Spring的Xml和JavaConfig 擴展的資料請關注腳本之家其它相關文章!

相關文章

  • Mybatis?Plus?QueryWrapper復合用法詳解

    Mybatis?Plus?QueryWrapper復合用法詳解

    這篇文章主要介紹了Mybatis?Plus?QueryWrapper復合用法詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • SpringBoot返回結(jié)果統(tǒng)一處理實例詳解

    SpringBoot返回結(jié)果統(tǒng)一處理實例詳解

    這篇文章主要為大家介紹了SpringBoot返回結(jié)果統(tǒng)一處理實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Java并發(fā)編程:volatile關鍵字詳細解析

    Java并發(fā)編程:volatile關鍵字詳細解析

    這篇文章主要介紹了Java并發(fā)編程:volatile關鍵字詳細解析,對學習volatile關鍵字有一定的認識,有需要的可以了解一下。
    2016-11-11
  • SpringBoot引入Redis報org.springframework.data.redis.core.RedisTemplate類找不到錯誤問題

    SpringBoot引入Redis報org.springframework.data.redis.core.RedisT

    這篇文章主要介紹了SpringBoot引入Redis報org.springframework.data.redis.core.RedisTemplate類找不到錯誤問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • Linux下Hadoop?2.7.3?安裝搭建過程

    Linux下Hadoop?2.7.3?安裝搭建過程

    Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(Hadoop?Distributed?File?System),簡稱HDFS,這篇文章給大家介紹Linux下Hadoop?2.7.3?安裝搭建過程,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • 登陸驗證碼kaptcha結(jié)合spring boot的用法詳解

    登陸驗證碼kaptcha結(jié)合spring boot的用法詳解

    在一個web應用中驗證碼是一個常見的元素。不管是防止機器人還是爬蟲都有一定的作用,下面這篇文章主要給大家介紹了登陸驗證碼kaptcha結(jié)合spring boot用法的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-06-06
  • Java微信授權(quán)登陸的實現(xiàn)示例

    Java微信授權(quán)登陸的實現(xiàn)示例

    微信授權(quán)登錄,官方文檔寫的比較簡潔。所以對于會的人一目了然,而對于新手剛?cè)腴T的人來說是舉步維艱。本文詳細的介紹了Java微信授權(quán)登陸的實現(xiàn)示例,感興趣的朋友可以了解一下
    2021-06-06
  • Spring Boot集成starrocks快速入門Demo(適用場景)

    Spring Boot集成starrocks快速入門Demo(適用場景)

    StarRocks 是新一代極速全場景 MPP (Massively Parallel Processing) 數(shù)據(jù)庫,StarRocks 的愿景是能夠讓用戶的數(shù)據(jù)分析變得更加簡單和敏捷,這篇文章主要介紹了Spring Boot集成starrocks快速入門Demo,需要的朋友可以參考下
    2024-08-08
  • 基于Java解決華為機試之字符串加解密?

    基于Java解決華為機試之字符串加解密?

    這篇文章主要介紹了基于Java解決華為機試之字符串加解密,問題描述展開主題即詳細代碼的分享完成文章內(nèi)容,具有一的的參考價值,需要的小伙伴可以參考一下。希望對你有所幫助
    2022-02-02
  • 一文帶你搞懂Java中的泛型和通配符

    一文帶你搞懂Java中的泛型和通配符

    泛型機制在項目中一直都在使用,甚至很多源碼中都用到了泛型機制。但是里面很多的機制和特性一直沒有明白,尤其通配符這塊,經(jīng)常忘記。本文對此做了一些總結(jié),具有一定借鑒價值,希望有所幫助
    2022-09-09

最新評論