之前的项目调用第三方接口时,往往用HttpUtils类似的静态方法调用。比较丑,不通用。如下,这是截取项目中某人调用的一段代码,非常不雅:
经改进后,采用了动态代理技术来实现,效果如下:
@Bean
@ConditionalOnMissingBean(TalkRemoteService.class)
public TalkRemoteService talkRemoteService() {
return TalkRemoteServiceBuilder.build();
}
把TalkRemoteService作为一个bean注入项目里面使用。接口定义与实现相分离,可按需扩展。岂不是又优雅又可靠。哈哈,如需更换第三方服务,重新实现TalkRemoteService即可。不需要对业务代码进行侵入修改。