SpringCloud开发课程中如何实现详细查询功能?

2026-04-30 04:122阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计708个文字,预计阅读时间需要3分钟。

SpringCloud开发课程中如何实现详细查询功能?

介绍+技术+之前有用Eureka+现在用Nacos+工作流和Gateway+接口数据流向+数据表+新建项目+新建cloud-删除src-新建module+Eurak(发现)+Eureka的作用+114、物联网+(注册中心、心跳机制60s失效剔除)+没

介绍

技术


之前有用eureka 现在用nacos
工作流和gateway

接口数据流向

数据表

新建项目

新建cloud-删除src-新建modle

Eurak(发现)

Eureka的作用

114、物业 (注册中心、心跳机制60s失效踢除)

没有服务注册于发现可以,但是会引来无穷无尽的麻烦
静态ip变更,影响多服务模块

架构


Eurak Server代码

新建moudle,和业务完全独立
pom依赖,最外层pomcloud版本号
新建配置文件
注解启动

验证localhost:8000/

Eureka客户端代码

配置dom
配置properties
启动client

利用Feign实现服务间调用

介绍

历史
netflex -> open (捐给spring cloud)

非常方便
基于接口和注解,和本地方法一样爽的localhost:8000/eureka/#zuul.prefix=/bennyrhyszuul.routes.course-list.path=/list/**zuul.routes.course-list.service-id=course-listzuul.routes.course-price.path=/price/**zuul.routes.course-price.service-id=course-price

启动类 注解

package com.bennyrhys.course;import org.springframework.boot.SpringApplication;import org.springframework.cloud.client.SpringCloudApplication;import org.springframework.cloud.netflix.zuul.EnableZuulProxy;/** * 描述: 网关启动类 */@EnableZuulProxy@SpringCloudApplicationpublic class ZuulGatewayApplication { public static void main(String[] args) { SpringApplication.run(ZuulGatewayApplication.class, args); }}

效果图

实现网关过滤器

过滤前

package com.bennyrhys.course.filter;import com.netflix.zuul.ZuulFilter;import com.netflix.zuul.context.RequestContext;import com.netflix.zuul.exception.ZuulException;import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;import org.springframework.stereotype.Component;/** * 描述: 记录请求时间 */@Componentpublic class PreRequestFilter extends ZuulFilter { @Override public String filterType() { //过滤器的类型 return FilterConstants.PRE_TYPE; } @Override public int filterOrder() { return 0; } @Override public boolean shouldFilter() { //是否启用过滤器 return true; } @Override public Object run() throws ZuulException { RequestContext currentContext = RequestContext.getCurrentContext(); currentContext.set("startTime", System.currentTimeMillis()); System.out.println("过滤器已经记录时间"); return null; }}

过滤后

package com.bennyrhys.course.filter;import com.netflix.zuul.ZuulFilter;import com.netflix.zuul.context.RequestContext;import com.netflix.zuul.exception.ZuulException;import org.springframework.cache.annotation.Cacheable;import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;import org.springframework.stereotype.Component;/** * 描述: 请求处理后的过滤器 */@Componentpublic class PostRequestFilter extends ZuulFilter { @Override public String filterType() { return FilterConstants.POST_TYPE; } @Override public int filterOrder() { return FilterConstants.SEND_RESPONSE_FILTER_ORDER - 1; } @Override public boolean shouldFilter() { return true; } @Override public Object run() throws ZuulException { RequestContext currentContext = RequestContext.getCurrentContext(); Long startTime = (Long) currentContext.get("startTime"); long duration = System.currentTimeMillis() - startTime; String requestURI = currentContext.getRequest().getRequestURI(); System.out.println("uri:" + requestURI + ",处理时长:" + duration); return null; }}

uri:/bennyrhys/list/course,处理时长:919

到此这篇关于SpringCloud开发课程查询功能的文章就介绍到这了,更多相关SpringCloud课程查询内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

SpringCloud开发课程中如何实现详细查询功能?

本文共计708个文字,预计阅读时间需要3分钟。

SpringCloud开发课程中如何实现详细查询功能?

介绍+技术+之前有用Eureka+现在用Nacos+工作流和Gateway+接口数据流向+数据表+新建项目+新建cloud-删除src-新建module+Eurak(发现)+Eureka的作用+114、物联网+(注册中心、心跳机制60s失效剔除)+没

介绍

技术


之前有用eureka 现在用nacos
工作流和gateway

接口数据流向

数据表

新建项目

新建cloud-删除src-新建modle

Eurak(发现)

Eureka的作用

114、物业 (注册中心、心跳机制60s失效踢除)

没有服务注册于发现可以,但是会引来无穷无尽的麻烦
静态ip变更,影响多服务模块

架构


Eurak Server代码

新建moudle,和业务完全独立
pom依赖,最外层pomcloud版本号
新建配置文件
注解启动

验证localhost:8000/

Eureka客户端代码

配置dom
配置properties
启动client

利用Feign实现服务间调用

介绍

历史
netflex -> open (捐给spring cloud)

非常方便
基于接口和注解,和本地方法一样爽的localhost:8000/eureka/#zuul.prefix=/bennyrhyszuul.routes.course-list.path=/list/**zuul.routes.course-list.service-id=course-listzuul.routes.course-price.path=/price/**zuul.routes.course-price.service-id=course-price

启动类 注解

package com.bennyrhys.course;import org.springframework.boot.SpringApplication;import org.springframework.cloud.client.SpringCloudApplication;import org.springframework.cloud.netflix.zuul.EnableZuulProxy;/** * 描述: 网关启动类 */@EnableZuulProxy@SpringCloudApplicationpublic class ZuulGatewayApplication { public static void main(String[] args) { SpringApplication.run(ZuulGatewayApplication.class, args); }}

效果图

实现网关过滤器

过滤前

package com.bennyrhys.course.filter;import com.netflix.zuul.ZuulFilter;import com.netflix.zuul.context.RequestContext;import com.netflix.zuul.exception.ZuulException;import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;import org.springframework.stereotype.Component;/** * 描述: 记录请求时间 */@Componentpublic class PreRequestFilter extends ZuulFilter { @Override public String filterType() { //过滤器的类型 return FilterConstants.PRE_TYPE; } @Override public int filterOrder() { return 0; } @Override public boolean shouldFilter() { //是否启用过滤器 return true; } @Override public Object run() throws ZuulException { RequestContext currentContext = RequestContext.getCurrentContext(); currentContext.set("startTime", System.currentTimeMillis()); System.out.println("过滤器已经记录时间"); return null; }}

过滤后

package com.bennyrhys.course.filter;import com.netflix.zuul.ZuulFilter;import com.netflix.zuul.context.RequestContext;import com.netflix.zuul.exception.ZuulException;import org.springframework.cache.annotation.Cacheable;import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;import org.springframework.stereotype.Component;/** * 描述: 请求处理后的过滤器 */@Componentpublic class PostRequestFilter extends ZuulFilter { @Override public String filterType() { return FilterConstants.POST_TYPE; } @Override public int filterOrder() { return FilterConstants.SEND_RESPONSE_FILTER_ORDER - 1; } @Override public boolean shouldFilter() { return true; } @Override public Object run() throws ZuulException { RequestContext currentContext = RequestContext.getCurrentContext(); Long startTime = (Long) currentContext.get("startTime"); long duration = System.currentTimeMillis() - startTime; String requestURI = currentContext.getRequest().getRequestURI(); System.out.println("uri:" + requestURI + ",处理时长:" + duration); return null; }}

uri:/bennyrhys/list/course,处理时长:919

到此这篇关于SpringCloud开发课程查询功能的文章就介绍到这了,更多相关SpringCloud课程查询内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

SpringCloud开发课程中如何实现详细查询功能?