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

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

Spring的Xml和JavaConfig 擴展哪個好用

瀏覽:70日期: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
相關文章:
主站蜘蛛池模板: 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | AGV无人叉车_激光叉车AGV_仓储AGV小车_AGV无人搬运车-南昌IKV机器人有限公司[官网] | 作文导航网_作文之家_满分作文_优秀作文_作文大全_作文素材_最新作文分享发布平台 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 低压载波电能表-单相导轨式电能表-华邦电力科技股份有限公司-智能物联网综合管理平台 | 低气压试验箱_高低温低气压试验箱_低气压实验箱 |林频试验设备品牌 | 物流之家新闻网-最新物流新闻|物流资讯|物流政策|物流网-匡匡奈斯物流科技 | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | 应急灯_消防应急灯_应急照明灯_应急灯厂家-大成智慧官网 | 润滑油加盟_润滑油厂家_润滑油品牌-深圳市沃丹润滑科技有限公司 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 智能风向风速仪,风速告警仪,数字温湿仪,综合气象仪(气象五要素)-上海风云气象仪器有限公司 | 电动高压冲洗车_价格-江苏速利达机车有限公司 | 越南专线物流_东莞国际物流_东南亚专线物流_行通物流 | 地脚螺栓_材质_标准-永年县德联地脚螺栓厂家 | 全自动在线分板机_铣刀式在线分板机_曲线分板机_PCB分板机-东莞市亿协自动化设备有限公司 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 北京易通慧公司从事北京网站优化,北京网络推广、网站建设一站式服务商-北京网站优化公司 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 继电器模组-IO端子台-plc连接线-省配线模组厂家-世麦德 | 滑板场地施工_极限运动场地设计_滑板公园建造_盐城天人极限运动场地建设有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 上海橡胶接头_弹簧减震器_金属软接头厂家-上海淞江集团 | 快干水泥|桥梁伸缩缝止水胶|伸缩缝装置生产厂家-广东广航交通科技有限公司 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 超声波清洗机_超声波清洗机设备_超声波清洗机厂家_鼎泰恒胜 | 伶俐嫂培训学校_月嫂培训班在哪里报名学费是多少_月嫂免费政府培训中心推荐 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 广西正涛环保工程有限公司【官网】 | 湖南长沙商标注册专利申请,长沙公司注册代理记账首选美创! | 百度关键词优化_网站优化_SEO价格 - 云无限好排名 | 集装箱箱号识别_自重载重图像识别_铁路车号自动识别_OCR图像识别 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 彭世修脚_修脚加盟_彭世修脚加盟_彭世足疗加盟_足疗加盟连锁_彭世修脚技术培训_彭世足疗 | 电梯乘运质量测试仪_电梯安全评估测试仪-武汉懿之刻 | 工程管道/塑料管材/pvc排水管/ppr给水管/pe双壁波纹管等品牌管材批发厂家-河南洁尔康建材 | 样品瓶(色谱样品瓶)百科-浙江哈迈科技有限公司|