RestTemplate是由Spring框架提供的一個可用于應用中調用rest服務的類它簡化了與http服務的通信方式,統一了RESTFul的標準,封裝了http連接,我們只需要傳入url及其返回值類型即可。相較于之前常用的HttpClient,RestTemplate是一種更為優雅的調用RESTFul服務的方式。
因為RestTemplate是Spirng框架提供的所以只要是一個Springboot項目就不用考慮導包的問題,這些都是提供好的。 但是Spring并沒有將其加入SpringBean容器中,需要我們手動加入,因為我們首先創建一個Springboot配置類,再在配置類中將我們的RestTemlate注冊到Bean容器中。
1.要使用這個硬編碼的形式
? ?@LoadBalanced // 這個是開啟負載均衡@Bean // 讓spring容器管理這個對象public RestTemplate restTemplate(){ // 這個對象spring并沒有加入管理return new RestTemplate(); }
-
在消費模塊中使用
@Autowired // 導入這個對象private RestTemplate restTemplate;@Overridepublic Map<String,Object> addWork(WorkOrders workOrders) {String url = "http://guo-project/project/showList"; // 寫生產者的請求地址List<ProjectTeams> projectList = restTemplate.getForObject(url, List.class); // 在這里要注意下Map<String,Object> map = new HashMap<>();map.put("project",projectList);int flag = workMapper.addWork(workOrders);map.put("數據添加",flag == 0 ? "false":"true" );return map;}
注意事項:生產者在這里調用回來的數據,不知道是idea版本的問題還是別的問題,返回來的數據是json格式的數據 那我們就要將json的數據轉為java數據 在這個模塊中導入json的依賴 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.24</version> </dependency>String url = "http://guo-project/project/showList";// 獲取全部的項目List pro = restTemplate.getForObject(url, List.class);// 將數據轉化成集合List<ProjectTeams> projectTeams = ? JSON.parseArray(JSON.toJSONString(pro),ProjectTeams.class); // 兩個參數,json轉化的數據,另一個是要轉化的類型
總結:繼續加油