博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从0开始构建SpringCloud微服务(1)
阅读量:6831 次
发布时间:2019-06-26

本文共 1938 字,大约阅读时间需要 6 分钟。

照例附上

本项目实现的是将一个简单的天气预报系统一步一步改造成一个SpringCloud微服务系统的过程,第一节将介绍普通天气预报系统的简单实现。

数据来源:

数据来源1:

数据来源2:

数据来源3:

数据格式

在这里插入图片描述

在这里插入图片描述

根据返回的数据格式在vo包下面创建pojo。

在这里插入图片描述

Service

创建WeatherDataService在其中提供如下接口:

1)根据城市Id获取城市天气数据的接口。

@Override    public WeatherResponse getDataByCityId(String cityId) {        String url=WEATHER_URI+ "citykey=" + cityId;        return this.doGetWeather(url);    }

2)根据城市名称获取天气数据的接口。

@Override    public WeatherResponse getDataByCityName(String cityName) {        String url = WEATHER_URI + "city=" + cityName;        return this.doGetWeather(url);    }

其中doGetWeather方法为抽离出来的请求天气数据的方法。

private WeatherResponse doGetWeahter(String uri) {         ResponseEntity
respString = restTemplate.getForEntity(uri, String.class); ObjectMapper mapper = new ObjectMapper(); WeatherResponse resp = null; String strBody = null; if (respString.getStatusCodeValue() == 200) { strBody = respString.getBody(); } try { resp = mapper.readValue(strBody, WeatherResponse.class); } catch (IOException e) { e.printStackTrace(); } return resp; }

Controller

在controller中分别提供根据城市id与名称获取天气数据的接口。

@RestController@RequestMapping("/weather")public class WeatherController {    @Autowired    private WeatherDataService weatherDataService;        @GetMapping("/cityId/{cityId}")    public WeatherResponse getWeatherByCityId(@PathVariable("cityId") String cityId) {        return weatherDataService.getDataByCityId(cityId);    }        @GetMapping("/cityName/{cityName}")    public WeatherResponse getWeatherByCityName(@PathVariable("cityName") String cityName) {        return weatherDataService.getDataByCityName(cityName);    }}

配置

创建Rest的配置类。

@Configurationpublic class RestConfiguration {        @Autowired    private RestTemplateBuilder builder;    @Bean    public RestTemplate restTemplate() {        return builder.build();    }    }

请求结果:

在这里插入图片描述

转载地址:http://rsnkl.baihongyu.com/

你可能感兴趣的文章
如何用zabbix创建自定义监控项
查看>>
PHP json_encode Unicode 解决办法
查看>>
Andriod Studio 解决问题 Failed to resolve: com.android.support:appcompat-v7:28.+
查看>>
IOException XX sessions: java.io.EOFException
查看>>
Solr服务的搭建
查看>>
谈一谈SQL Server中的执行计划缓存(下)
查看>>
centos系统实现hadoop安装配置《二》
查看>>
linux JVM内存分析(二) 实战JVM调优
查看>>
(三)spring cloud微服务分布式云架构 - Spring Cloud集成项目简介
查看>>
scrapy爬虫时HTTPConnectionPool(host:XX)Max retries exceeded with url 解决方法
查看>>
随机漫步
查看>>
解决vue在ie中不能使用的问题
查看>>
如何使用 CSS Grid 快速而又灵活的布局
查看>>
scrolltop的兼容问题
查看>>
磁盘格式化,磁盘挂载,手动增加swap空间
查看>>
2.23/2.24/2.25 find命令
查看>>
4.26 Alias 4.27-29 php编译安装 4.30 编译安装Nginx
查看>>
python函数相关
查看>>
芝麻HTTP:Python爬虫入门之Urllib库的高级用法
查看>>
nginx.conf配置文件的参数详解
查看>>