日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring的Xml和JavaConfig 擴(kuò)展哪個(gè)好用

瀏覽:185日期:2023-07-14 08:28:21
引言

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

JavaConfig 配置擴(kuò)展

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

@Configuration

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

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

這個(gè)定義的JavaConfig就相當(dāng)于原來(lái)如下XML的配置:

<beans> <bean /></beans>

@Bean

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

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

@Import

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

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

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

Dubbo的JavaConfig

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

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

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

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

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

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

以上就是Spring的Xml和JavaConfig 擴(kuò)展哪個(gè)好的詳細(xì)內(nèi)容,更多關(guān)于Spring的Xml和JavaConfig 擴(kuò)展的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
麻豆成人综合网| 蜜臀av亚洲一区中文字幕| 日韩精品国产欧美| 亚洲字幕久久| 日韩三级精品| 国产欧美一区| 久久99精品久久久野外观看| 国产精品99精品一区二区三区∴ | 日本中文字幕视频一区| 日韩在线成人| 欧美日韩网址| 国产欧美一区二区三区精品观看 | 日本在线不卡视频| 欧美日一区二区三区在线观看国产免 | 久草免费在线视频| 色偷偷偷在线视频播放| 日韩不卡免费高清视频| 日韩视频不卡| 日韩精选在线| 精品视频国内| 欧美+亚洲+精品+三区| 蜜桃久久av一区| 国产精品一区二区av交换| 国产成人黄色| 今天的高清视频免费播放成人| 伊人成人网在线看| 日本午夜免费一区二区| 国产一区二区三区四区五区传媒| 久久三级福利| 亚洲日本三级| 精品欧美日韩精品| 伊人久久亚洲热| 日韩精品a在线观看91| 精品福利久久久| 伊人精品在线| 国产精品自在| 久久久久久久久久久9不雅视频| 免费久久99精品国产| 日本欧美在线| 日韩啪啪电影网| 亚洲精品一级| 日韩欧美三级| 日韩高清三区| 久久久久.com| 国产亚洲一区二区三区不卡| 欧美精选视频一区二区| 日韩欧美中文在线观看| 97精品97| 亚洲精品欧美| 深夜视频一区二区| 亚洲日产av中文字幕| 欧美国产日韩电影| 五月婷婷六月综合| 日本麻豆一区二区三区视频| 亚洲黄色免费看| 亚洲一区av| 精品国产免费人成网站| 日韩欧美2区| 91精品在线观看国产| 日韩黄色在线观看| 久久久久欧美精品| 国产麻豆一区二区三区精品视频| 999久久久91| 国产精品色婷婷在线观看| 激情婷婷欧美| 精品成av人一区二区三区 | 免费视频亚洲| 国产日韩精品视频一区二区三区| 久久一区二区三区电影| 日韩国产欧美一区二区三区| 日韩欧美一区二区三区在线观看| 国产欧美日韩在线观看视频| 伊人久久亚洲热| 四虎成人av| 欧美啪啪一区| 国产亚洲精品v| 亚洲精品成人图区| 欧美精品国产白浆久久久久| 日韩午夜黄色| 日韩精品久久久久久久电影99爱| 国产精品亚洲综合在线观看| 老鸭窝毛片一区二区三区| 日韩av片子| 欧美日韩亚洲一区三区| 国产精品婷婷| 久久精品国产www456c0m| 久久一区精品| 日韩黄色在线观看| 免费日韩一区二区| 日韩精品久久久久久久电影99爱| 国产精品色婷婷在线观看| 免费不卡在线视频| 欧美亚洲在线日韩| 吉吉日韩欧美| 久久久久亚洲精品中文字幕| 日韩一区二区三免费高清在线观看 | 欧美精品高清| 国产一区二区三区探花| 国产日本精品| 午夜电影一区| 一区二区三区国产盗摄| 一本色道久久精品| 国产主播一区| 91精品国产调教在线观看| 国产伦久视频在线观看| 国产成人黄色| 四季av一区二区凹凸精品| 麻豆一区二区三| 国产精品亚洲四区在线观看| 亚洲影视一区二区三区| 三级欧美在线一区| 国产视频亚洲| 亚洲激情av| 国产精品美女久久久| 日韩亚洲精品在线| 91久久亚洲| 在线亚洲一区| 噜噜噜躁狠狠躁狠狠精品视频 | 日韩成人av影视| 亚洲午夜国产成人| 免费在线观看视频一区| 视频一区欧美精品| 日韩精品一级中文字幕精品视频免费观看 | 国产一区二区三区亚洲| 精品国产一区二区三区av片| 久久不见久久见中文字幕免费| 欧美日韩1区| 日韩三级精品| 日本午夜精品一区二区三区电影| 日韩高清电影一区| 久久超级碰碰| 精品国产欧美| 欧美日韩视频网站| 亚洲黑丝一区二区| 国产一区二区高清| 最新亚洲国产| 国产日韩在线观看视频| 麻豆视频久久| 国产精品久久久久蜜臀| 国产在线看片免费视频在线观看| 蜜臀国产一区| 亚洲激情二区| 日韩高清电影免费| 美女国产精品久久久| 日韩成人亚洲| 免费观看在线色综合| 国产图片一区| 日韩大片在线播放| 一区福利视频| 久久精品999| 日韩中文字幕高清在线观看| 99在线精品免费视频九九视| 91精品国产自产精品男人的天堂| 国产欧美日韩一级| 黄色在线网站噜噜噜| 一区在线视频观看| 日韩精品导航| 久久久久久色 | 精品国产精品国产偷麻豆| 日韩精品不卡一区二区| 国产精品日韩欧美一区| 国产美女精品视频免费播放软件| 久久精品国产成人一区二区三区 | 成人精品国产亚洲| 亚洲精品va| 国产精品一区二区美女视频免费看| 日韩综合在线| 日韩在线a电影| 久久精品人人| 香蕉精品999视频一区二区| 国产精品免费大片| 99精品在线| 日本国产亚洲| 日韩免费小视频| 亚洲日韩视频| 激情国产在线| 免播放器亚洲一区| 精品福利久久久| 蜜桃av一区二区| 狠狠躁少妇一区二区三区| 免播放器亚洲一区| 在线天堂资源www在线污| 美国三级日本三级久久99| 美腿丝袜在线亚洲一区| 一区在线免费| 精品视频97| 亚洲欧美一级| 精品免费av在线| 久久激五月天综合精品| 欧洲毛片在线视频免费观看| 国产精品三级| 宅男在线一区| 老司机免费视频一区二区| 国产精品日韩久久久| 国内精品亚洲| 亚洲91网站| 999久久久精品国产| 国产精品啊v在线| 玖玖精品视频| 亚洲91精品|