若是你用過Spring-boot來提供dubbo服務,相信使用中有不少「不爽」的地方。既然使用spring boot,那麼能用註解的地方毫不用xml配置,這纔是spring-boot-style。開個玩笑,真正意思是,spring-boot適合一些簡單的、獨立的服務,一個大的系統是不適合使用spring-boot來開發。相反,spring-boot適合那些簡單服務的搭建。 網上大多數的方法仍是使用xml配置,經過@Import註解來引入xml配置。git
dubbo: application: name: lizo-consumer registry: address: zookeeper://localhost:12181
通過以上3個步驟,就能夠完成對dubbo的配置,是否是很Spring-bootstylespring
dubbo有不少擴展,其中filter是使用比較多一個。可是用起來很不方便。若是能像Spring boot定義Spring MVC的filter那樣簡單聲明一個bean就行了。恩,其實就是這樣。app
@Bean ProviderFilter providerFilter() { return new ProviderFilter(); } static class ProviderFilter extends AbstractDubboProviderFilterSupport { public Result invoke(Invoker<?> invoker, Invocation invocation) { System.out.println("ProviderFilter"); return invoker.invoke(invocation); } }
更定製化的需求,能夠使用Dubbo的@Activate註解來定製化Filter,那麼能夠這樣ide
@Bean CustomFilter customFilter() { return new CustomFilter(); } @Activate(group = Constants.PROVIDER) static class CustomFilter extends AbstractDubboFilterSupport { public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { System.out.println("ProviderFilter2"); return invoker.invoke(invocation); } public Filter getDefaultExtension() { return this; } }