作者:百变靓丽 | 来源:互联网 | 2024-10-24 13:32
在本文中,我们将探讨如何高效地使用`RestTemplate`并分享一些最佳实践。首先,我们创建了两个SpringBoot项目,分别为A项目(端口8080)和B项目(端口8081)。接下来,我们在A项目中配置了必要的设置,包括创建配置文件和导入相关依赖,以确保`RestTemplate`能够顺利调用B项目的API。通过这些步骤,我们展示了如何在实际项目中有效地集成和使用`RestTemplate`。
创建两个SpringBoot项目,A项目端口号8080;B项目端口号8081。
一、创建配置文件 在A项目当中创建配置文件
import org. springframework. context. annotation. Bean ; import org. springframework. context. annotation. Configuration ; import org. springframework. web. client. RestTemplate ; @Configuration public class ApplicationContextConfig { @Bean public RestTemplate getRestTemplate ( ) { return new RestTemplate ( ) ; } }
二、简单GET请求 1、在B项目当中编写一个contoller &#64;GetMapping ( "/testList.do" ) public List < String > testList ( ) { List < String > list &#61; new ArrayList < > ( ) ; for ( int i &#61; 0 ; i < 5 ; i&#43;&#43; ) { list. add ( "测试" &#43; i) ; } return list; }
2、在A项目当中编写一个controller &#64;Resource private RestTemplate restTemplate; &#64;GetMapping ( "/test" ) public void test ( ) { Object forObject &#61; restTemplate. getForObject ( "http://localhost:8081/testList.do" , Object . class ) ; System . out. println ( forObject) ; }
3、调用A项目的接口 http://localhost:8080/test
4、输出结果
三、带参数的GET请求 操作跟上面的一样&#xff0c;适当修改一样内容。
1、在B项目当中编写一个contoller &#64;GetMapping ( "/testList.do" ) public List < String > testList ( &#64;RequestParam Integer page, &#64;RequestParam Integer pageCount) { List < String > list &#61; new ArrayList < > ( ) ; String str &#61; "A工程传过来的page参数值为&#xff1a;" &#43; page &#43; ", pageCount参数值为&#xff1a;" &#43; pageCount; list. add ( str) ; return list; }
2、在A项目当中编写一个controller &#64;Resource private RestTemplate restTemplate; &#64;GetMapping ( "/test" ) public void test ( ) { Object forObject &#61; restTemplate. getForObject ( "http://localhost:8081/testList.do?page&#61;1&pageCount&#61;2" , Object . class ) ; System . out. println ( forObject. toString ( ) ) ; }
3、还是调用A项目的接口 http://localhost:8080/test
4、输出结果
四、POST请求 1、在B项目当中编写一个contoller &#64;PostMapping ( "/testAdd.do" ) public Employee testAdd ( &#64;RequestBody Employee employee) { employee. setEmployeeNo ( "001" ) ; return employee; }
2、在A项目当中编写一个controller &#64;Resource private RestTemplate restTemplate; &#64;GetMapping ( "/test" ) public void test ( ) { Employee employee &#61; new Employee ( ) ; employee. setEmployeeName ( "张三" ) ; Object forObject &#61; restTemplate. postForObject ( "http://localhost:8081/testAdd.do" , employee, Object . class ) ; System . out. println ( forObject) ; }
3、还是调用A项目的接口 http://localhost:8080/test
4、输出结果 可以看见在B项目当中set的employeeNo已经返回了。