电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Spring的Xml和JavaConfig 擴展哪個好用

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

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

JavaConfig 配置擴展

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

@Configuration

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

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

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

<beans> <bean /></beans>

@Bean

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

name:指定一個或者多個bean的名字,當沒有設置name時,Spring容器會默認將@Bean方法名作為bean name,當設置了name后,就不會再使用方法名,同時設置多個name時,除第一個name外,其他的都會作為bean的別名。相當于xml配置中的name屬性。 initMethod:指定容器在初始化完bean后調用的方法。相當于xml配置中的init-method屬性。 destroyMethod:指定在容器在銷毀bean前調用的方法。相當于xml配置中的 destroy-method。 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的服務提供者是如何通過注解來實現的

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

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

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

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

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

以上就是Spring的Xml和JavaConfig 擴展哪個好的詳細內容,更多關于Spring的Xml和JavaConfig 擴展的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 | 谷歌关键词优化-外贸网站优化-Google SEO小语种推广-思亿欧外贸快车 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 硬质合金模具_硬质合金非标定制_硬面加工「生产厂家」-西迪技术股份有限公司 | 深圳VI设计-画册设计-LOGO设计-包装设计-品牌策划公司-[智睿画册设计公司] | 慢回弹测试仪-落球回弹测试仪-北京冠测精电仪器设备有限公司 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | LOGO设计_品牌设计_VI设计 - 特创易 | 头条搜索极速版下载安装免费新版,头条搜索极速版邀请码怎么填写? - 欧远全 | 直流电能表-充电桩电能表-导轨式电能表-智能电能表-浙江科为电气有限公司 | 药品仓库用除湿机-变电站用防爆空调-油漆房用防爆空调-杭州特奥环保科技有限公司 | 直齿驱动-新型回转驱动和回转支承解决方案提供商-不二传动 | 中国玩具展_玩具展|幼教用品展|幼教展|幼教装备展 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 英国雷迪地下管线探测仪-雷迪RD8100管线仪-多功能数字听漏仪-北京迪瑞进创科技有限公司 | 印刷人才网 印刷、包装、造纸,中国80%的印刷企业人才招聘选印刷人才网! | CCE素质教育博览会 | CCE素博会 | 教育展 | 美育展 | 科教展 | 素质教育展 | 臻知网大型互动问答社区-你的问题将在这里得到解答!-无锡据风网络科技有限公司 | 瑞典Blueair空气净化器租赁服务中心-专注新装修办公室除醛去异味服务! | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 众能联合-提供高空车_升降机_吊车_挖机等一站工程设备租赁 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | 儋州在线-儋州招聘找工作、找房子、找对象,儋州综合生活信息门户! | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 陕西视频监控,智能安防监控,安防系统-西安鑫安5A安防工程公司 | 隐形纱窗|防护纱窗|金刚网防盗纱窗|韦柏纱窗|上海青木装潢制品有限公司|纱窗国标起草单位 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 超声骨密度仪-骨密度检测仪-经颅多普勒-tcd仪_南京科进实业有限公司 | 太原装修公司_山西整装家装设计_太原室内装潢软装_肖邦家居 | ◆大型吹塑加工|吹塑加工|吹塑代加工|吹塑加工厂|吹塑设备|滚塑加工|滚塑代加工-莱力奇塑业有限公司 | 自动售货机_无人售货机_专业的自动售货机运营商_免费投放售货机-广州富宏主官网 | RFID电子标签厂家-上海尼太普电子有限公司 | EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 众品地板网-地板品牌招商_地板装修设计_地板门户的首选网络媒体。 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 密集柜_档案密集柜_智能密集架_密集柜厂家_密集架价格-智英伟业 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 合肥弱电工程_安徽安防工程_智能化工程公司-合肥雷润 | 镀锌角钢_槽钢_扁钢_圆钢_方矩管厂家_镀锌花纹板-海邦钢铁(天津)有限公司 |