Spring Cloud实战案例 │ 简易天气预报系统

简介: 本案例介绍简易天气预报系统的实现。整个应用分为3个微服务项目,分别是Eureka服务器项目mweathereurekaserver、天气服务提供者项目weatherbasic、天气服务消费者项目weatherclient。

image.png


#1、实现天气服务提供者项目weatherbasic
##1●新建项目并添加依赖

新建项目weatherbasic,确保在文件pom.xml的和之间添加了Eureka Client、Web、Lombok等依赖。
##2●创建类、接口并修改配置文件

依次在包com.bookcode下创建vo、service、controller等子包,并在包com.bookcode.vo中创建类Forecast、Weather、WeatherResponse、Yesterday,在包com.bookcode.service中创建接口WeatherDataService和impl子包,在包com.bookcode.service.impl中创建类WeatherDataServiceImpl,在包com.bookcode.controller中创建类WeatherController,并修改这些类和接口的代码。

修改在目录src/main/resources下的配置文件application.properties。
#2、实现天气服务消费者项目weatherclient
##1●新建项目并添加依赖

新建项目weatherclient,确保在文件pom.xml的和和之间添加了Eureka Client、Thymeleaf、Lombok、Web依赖。
##2●创建类

依次在包com.bookcode下创建entity、service、controller、utils等子包,并在包com.bookcode.entity中创建类City、CityList、Forecast、Weather、Yesterday,在包com.bookcode.service中创建类CityDataService、CallWeatherService、WeatherReportService,在包com.bookcode.controller中创建类CallWeatherController、WeatherReportController,在包com.bookcode.utils中创建类XmlBuilder,并修改这些类的代码。
##3●新建文件和修改配置文件

在目录src/main/resources下创建文件citylist.xml,在目录src/main/resources/templates下创建文件report.html,并修改这些文件的代码。

修改在目录src/main/resources下的配置文件application.properties。
#3、程序运行结果

依次运行项目mweathereurekaserver、weatherbasic(服务名称为microweatherservice,端口为8762)、weatherclient(端口为8764)。

在浏览器中输入localhost:8762/weather/cityId/101190801,结果如图1所示。

image.png


■ 图1 在浏览器中输入localhost:8762/weather/cityId/101190801的结果

在浏览器中输入localhost:8764/cityId/101190801,结果如图2所示。对比图1和图2可以发现两者数据(天气服务内容)完全相同。

image.png


■ 图2 在浏览器中输入localhost:8764/cityId/101190801的结果

在浏览器中输入localhost:8764/report/cityId/101190801,结果如图3所示。

image.png


■ 图3 在浏览器中输入localhost:8764/report/cityId/101190801的结果

大家可以通过天气服务消费者项目weatherclient体会到访问远程Spring Cloud微服务和实现本地服务的差异。与本系统类似的代码可以参考网址https://github.com/LuckyShawn/spring-cloud-weather

目录
相关文章
|
2天前
|
Java 应用服务中间件 测试技术
深入探索Spring Boot Web应用源码及实战应用
【5月更文挑战第11天】本文将详细解析Spring Boot Web应用的源码架构,并通过一个实际案例,展示如何构建一个基于Spring Boot的Web应用。本文旨在帮助读者更好地理解Spring Boot的内部工作机制,以及如何利用这些机制优化自己的Web应用开发。
14 3
|
3天前
|
安全 Java 开发者
深入理解Spring Boot配置绑定及其实战应用
【4月更文挑战第10天】本文详细探讨了Spring Boot中配置绑定的核心概念,并结合实战示例,展示了如何在项目中有效地使用这些技术来管理和绑定配置属性。
10 1
|
14天前
|
安全 Java 测试技术
Spring Boot集成支付宝支付:概念与实战
【4月更文挑战第29天】在电子商务和在线业务应用中,集成有效且安全的支付解决方案是至关重要的。支付宝作为中国领先的支付服务提供商,其支付功能的集成可以显著提升用户体验。本篇博客将详细介绍如何在Spring Boot应用中集成支付宝支付功能,并提供一个实战示例。
36 2
|
14天前
|
Java 关系型数据库 数据库
Spring Boot多数据源及事务管理:概念与实战
【4月更文挑战第29天】在复杂的企业级应用中,经常需要访问和管理多个数据源。Spring Boot通过灵活的配置和强大的框架支持,可以轻松实现多数据源的整合及事务管理。本篇博客将探讨如何在Spring Boot中配置多数据源,并详细介绍事务管理的策略和实践。
38 3
|
3天前
|
监控 安全 Java
Spring cloud原理详解
Spring cloud原理详解
14 0
|
4天前
|
Java Spring 容器
深入理解Spring Boot启动流程及其实战应用
【5月更文挑战第9天】本文详细解析了Spring Boot启动流程的概念和关键步骤,并结合实战示例,展示了如何在实际开发中运用这些知识。
13 2
|
6天前
|
JavaScript Java 开发者
Spring Boot中的@Lazy注解:概念及实战应用
【4月更文挑战第7天】在Spring Framework中,@Lazy注解是一个非常有用的特性,它允许开发者控制Spring容器的bean初始化时机。本文将详细介绍@Lazy注解的概念,并通过一个实际的例子展示如何在Spring Boot应用中使用它。
18 2
|
6天前
|
数据采集 Web App开发 Java
Python 爬虫:Spring Boot 反爬虫的成功案例
Python 爬虫:Spring Boot 反爬虫的成功案例
|
6天前
|
传感器 人工智能 前端开发
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
智慧校园电子班牌,坐落于班级的门口,适合于各类型学校的场景应用,班级学校日常内容更新可由班级自行管理,也可由学校统一管理。让我们一起看看,电子班牌有哪些功能呢?
60 4
JAVA语言VUE2+Spring boot+MySQL开发的智慧校园系统源码(电子班牌可人脸识别)Saas 模式
|
7天前
|
消息中间件 负载均衡 Java
【Spring Cloud 初探幽】
【Spring Cloud 初探幽】
14 1