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

目录
相关文章
|
7天前
|
人工智能 Cloud Native 安全
DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集
诚挚地感谢每一位持续关注并使用 Higress 和 Spring AI Alibaba 的朋友,DeepSeek + Higress AI 网关/Spring AI Alibaba 案例征集中。
|
8天前
|
JavaScript 前端开发 Java
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
Jeesite5 是一个基于 Spring Boot 3.3 和 Vue3 的企业级快速开发平台,集成了众多优秀开源项目,如 MyBatis Plus、Bootstrap、JQuery 等。它提供了模块化设计、权限管理、多数据库支持、代码生成器和国际化等功能,极大地提高了企业级项目的开发效率。Jeesite5 广泛应用于企业管理系统、电商平台、客户关系管理和知识管理等领域。通过其强大的功能和灵活性,Jeesite5 成为了企业级开发的首选框架之一。访问 [Gitee 页面](https://gitee.com/thinkgem/jeesite5) 获取更多信息。
Jeesite5:Star24k,Spring Boot 3.3+Vue3实战开源项目,架构深度拆解!让企业级项目开发效率提升300%的秘密武器
|
2月前
|
存储 JavaScript 开发工具
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
本次的.HarmonyOS Next ,ArkTS语言,HarmonyOS的元服务和DevEco Studio 开发工具,为开发者提供了构建现代化、轻量化、高性能应用的便捷方式。这些技术和工具将帮助开发者更好地适应未来的智能设备和服务提供方式。
82 8
基于HarmonyOS 5.0(NEXT)与SpringCloud架构的跨平台应用开发与服务集成研究【实战】
|
1月前
|
存储 安全 Java
Spring Boot 3 集成Spring AOP实现系统日志记录
本文介绍了如何在Spring Boot 3中集成Spring AOP实现系统日志记录功能。通过定义`SysLog`注解和配置相应的AOP切面,可以在方法执行前后自动记录日志信息,包括操作的开始时间、结束时间、请求参数、返回结果、异常信息等,并将这些信息保存到数据库中。此外,还使用了`ThreadLocal`变量来存储每个线程独立的日志数据,确保线程安全。文中还展示了项目实战中的部分代码片段,以及基于Spring Boot 3 + Vue 3构建的快速开发框架的简介与内置功能列表。此框架结合了当前主流技术栈,提供了用户管理、权限控制、接口文档自动生成等多项实用特性。
91 8
|
2月前
|
Java 数据库 数据安全/隐私保护
轻松掌握Spring依赖注入:打造你的登录验证系统
本文以轻松活泼的风格,带领读者走进Spring框架中的依赖注入和登录验证的世界。通过详细的步骤和代码示例,我们从DAO层的创建到Service层的实现,再到Spring配置文件的编写,最后通过测试类验证功能,一步步构建了一个简单的登录验证系统。文章不仅提供了实用的技术指导,还以口语化和生动的语言,让学习变得不再枯燥。
56 2
|
2月前
|
消息中间件 监控 Java
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + RabbitMQ应用程序部署到Pivotal Cloud Foundry (PCF)
51 6
|
2月前
|
Java 关系型数据库 MySQL
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot + MySQL应用程序部署到Pivotal Cloud Foundry (PCF)
84 5
|
2月前
|
缓存 监控 Java
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
如何将Spring Boot应用程序部署到Pivotal Cloud Foundry (PCF)
65 5
|
3月前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
98 3
|
4月前
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
778 6