调用REST服务
如果应用需要调用远程REST服务,可以使用Spring框架的 RestTemplate
类。由于 RestTemplate
实例经常在使用前需要自定义,Spring Boot就没有提供任何自动配置的 RestTemplate
bean,不过可以通过自动配置的 RestTemplateBuilder
创建自己需要的 RestTemplate
实例。自动配置的 RestTemplateBuilder
会确保应用到 RestTemplate 实例的 HttpMessageConverters
是合适的。
简单RestTemplate
注 RestTemplateBuilder
包含很多有用的方法,可以用于快速配置一个 RestTemplate
。例如,可以使用 builder.basicAuthorization("user", "password").build()
添加基本的认证支持 BASIC auth
。
自定义RestTemplate
当使用 RestTemplateBuilder
构建 RestTemplate
时,可以通过 RestTemplateCustomizer
进行更高级的定制,所有 RestTemplateCustomizer
beans将自动添加到自动配置的 RestTemplateBuilder
。此外,调用 additionalCustomizers(RestTemplateCustomizer…)
方法可以创建一个新的,具有其他customizers的 RestTemplateBuilder
。
以下示例演示使用自定义器(customizer)配置所有hosts使用代理,除了 192.168.0.5
:
实验
正常演示REST会使用两个REST服务来演示,不过为了篇幅本次实验只启动了一个REST服务,自己调用自己,不过不是JVM内部调用,还是走的REST。
创建一个Maven项目
pom.xml
application.yml
App.java
项目结构
运行结果
访问如下URL - http://localhost:9090/index
参考资料
Spring Boot Reference Guide : http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/