首页>>后端>>SpringBoot->SpringBoot集成RestTemplate组件

SpringBoot集成RestTemplate组件

时间:2023-11-29 本站 点击:1

背景

搭建SpringBoot项目框架,将要集成远程调用统一解决方案,来对其他服务的接口进行访问。

比如Http接口、WebService接口等等的其他服务对外暴露的接口。

针对SpringBoot环境集成RestTemplate组件,并且生成出相关的工具类,进而使开发效率有更好的提升。

实现的具体部署

还是一样,要先在pom文件引入相应的jar包。

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>

不要太过好奇为什么不引入RestTemplate的jar包,因为starter-web依赖就已经默认引入了相应包了。

引入这个包之后,我们就可以在相应的类中进行属性装配了,如下代码:

@AutowiredprivateRestTemplaterestTemplate;

通过这种方式就可以调用相关的方法了,当然这里也可以直接new一个RestTemplate对象也是可以的。

扩展

集成RestTemplate,不只是引入一个jar包就可以了,更多的是根据项目的实际情况不同,去做出一些自定义调整,我这里是引入了一个自动配置类,我把代码贴出来,大家可以进行一个参考。

@ConfigurationpublicclassRestTemplateAutoConfiguration{/***连接超时时间*/@Value("${rest.connection.timeout}")privateIntegerconnectionTimeout;/***信息读取超时时间*/@Value("${rest.read.timeout}")privateIntegerreadTimeout;/***声明RestTemplate服务*@returnRestTemplate*/@BeanpublicRestTemplateregisterTemplate(ClientHttpRequestFactorysimileClientHttpRequestFactory){RestTemplaterestTemplate=newRestTemplate();//配置自定义的message转换器List<HttpMessageConverter<?>>messageConverters=restTemplate.getMessageConverters();messageConverters.add(newRestTemplateHttpMessageConverter());restTemplate.setMessageConverters(messageConverters);//配置自定义的interceptor拦截器List<ClientHttpRequestInterceptor>interceptors=newArrayList<>();interceptors.add(newHeadClientHttpRequestInterceptor());interceptors.add(newTrackLogClientHttpRequestInterceptor());restTemplate.setInterceptors(interceptors);//配置自定义的异常处理restTemplate.setErrorHandler(newRestTemplateExceptionHandle());restTemplate.setRequestFactory(simileClientHttpRequestFactory);returnrestTemplate;}/***初始化请求工厂*@returnSimpleClientHttpRequestFactory*/@BeanpublicSimpleClientHttpRequestFactorygetFactory(){SimpleClientHttpRequestFactoryfactory=newSimpleClientHttpRequestFactory();factory.setConnectTimeout(connectionTimeout);factory.setReadTimeout(readTimeout);returnfactory;}/***数据转换器*/staticclassRestTemplateHttpMessageConverterextendsMappingJackson2HttpMessageConverter{publicRestTemplateHttpMessageConverter(){List<MediaType>mediaTypes=newArrayList<>();mediaTypes.add(MediaType.TEXT_PLAIN);mediaTypes.add(MediaType.TEXT_HTML);//加入text/html类型的支持setSupportedMediaTypes(mediaTypes);//tag6}}}

当然了,在application.yml中也要对其进行参数的配置,如下代码所示:

rest:connection:timeout:10000read:timeout:20000


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/SpringBoot/409.html