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

目录
相关文章
|
8月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
9月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1303 3
|
7月前
|
监控 Cloud Native Java
Spring Boot 3.x 微服务架构实战指南
🌟蒋星熠Jaxonic,技术宇宙中的星际旅人。深耕Spring Boot 3.x与微服务架构,探索云原生、性能优化与高可用系统设计。以代码为笔,在二进制星河中谱写极客诗篇。关注我,共赴技术星辰大海!(238字)
1217 2
Spring Boot 3.x 微服务架构实战指南
|
7月前
|
XML Java 测试技术
《深入理解Spring》:IoC容器核心原理与实战
Spring IoC通过控制反转与依赖注入实现对象间的解耦,由容器统一管理Bean的生命周期与依赖关系。支持XML、注解和Java配置三种方式,结合作用域、条件化配置与循环依赖处理等机制,提升应用的可维护性与可测试性,是现代Java开发的核心基石。
|
9月前
|
人工智能 监控 安全
如何快速上手【Spring AOP】?核心应用实战(上篇)
哈喽大家好吖~欢迎来到Spring AOP系列教程的上篇 - 应用篇。在本篇,我们将专注于Spring AOP的实际应用,通过具体的代码示例和场景分析,帮助大家掌握AOP的使用方法和技巧。而在后续的下篇中,我们将深入探讨Spring AOP的实现原理和底层机制。 AOP(Aspect-Oriented Programming,面向切面编程)是Spring框架中的核心特性之一,它能够帮助我们解决横切关注点(如日志记录、性能统计、安全控制、事务管理等)的问题,提高代码的模块化程度和复用性。
|
10月前
|
存储 人工智能 自然语言处理
用Spring AI搭建本地RAG系统:让AI成为你的私人文档助手
想让AI帮你读懂PDF文档吗?本文教你用Spring AI和Ollama搭建一个本地RAG系统,让AI成为你的私人文档助手。无需GPU,无需云端API,只需几行代码,你的文档就能开口说话了!
2035 2
|
10月前
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
1328 0
|
11月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
1150 0

热门文章

最新文章