@DubboService和@Service、@DubboReference和@Reference的區別和關系


1.不同時間的三組注解
在舊版本中,Dubbo使用自己的@Service、@Referenc注解來標注服務與引用。
或許是想與spring等框架的注解區分開,在2.7.7版本后,源碼中的@Service、@Referenc被打上了@Deprecated注解,它們被使用的地方都被攔腰打上了橫線,表示不建議使用。

定位到它們所在路徑,發現總共有三種相似的注解


其實它們是Dubbo的三個不同時期的產物,它們的全路徑名稱如下

// 2.7.x 之前,Alibaba時期
com.alibaba.dubbo.config.annotation.Reference
com.alibaba.dubbo.config.annotation.Service

// 2.7.0之后,Apache時期
org.apache.dubbo.config.annotation.Reference
org.apache.dubbo.config.annotation.Service

// 2.7.7之后
org.apache.dubbo.config.annotation.DubboReference
org.apache.dubbo.config.annotation.DubboService

2.注解的升級
2.1 @Reference
@Reference 相關注解用來引用服務

2.1.1 Alibaba @Reference -> Apache @Reference
2.1.1.1 注解升級
新增注解,路徑從com.alibaba變成org.apache,舊注解打上@Deprecated

2.1.1.2 屬性增加
2.7.0的Apache版本,比Alibaba的@Reference注解多了protocol、tags、methods、id五個屬性,這次升級后,開發者可以做通過protocol指定協議等操作。


2.1.2 @Reference -> @DubboReference
2.1.2.1 注解升級
2.2.7版本,主要是新注解名稱加上Dubbo前綴,顯得更直觀,舊注解打上@Deprecated


2.1.2.2 屬性增加
同時增加了merger、services屬性


2.2 @Service
@Service 相關注解用來暴露服務

2.2.1 Alibaba @Service -> Apache @Service
2.2.1.1 注解升級
新增注解,路徑從com.alibaba變成org.apache,舊注解打上@Deprecated

2.2.1.2 屬性修改與增加
2.7.0的Apache版本,
將export、register的默認值從false改為true,
將回調callbacks默認值從空改為1,
將重試次數retries默認值從空改為2
將負載均衡loadbalance默認值從空改為rodom隨機
增加了methods、id兩個屬性


2.2.2 @Service -> @DubboService
2.2.1.1 注解升級
2.2.7版本,主要是新注解名稱加上Dubbo前綴,顯得更直觀,舊注解打上@Deprecated,屬性一點沒改,改名的目的很單純


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM