当前位置: 首页 > news >正文

石家庄做网站建设的公司排名flashxml网站模板

石家庄做网站建设的公司排名,flashxml网站模板,wordpress 推特,游戏开发制作培训相关类介绍 动态路由#xff08;自己控制#xff0c;非注册中心控制#xff09;涉及两个很重要的Bean#xff1a; RouteDefinitionWriter#xff1a;用于添加、修改、删除路由规则。RouteDefinitionLocator#xff1a;用于查询路由规则。 以及一个相关事件#xff1a…相关类介绍 动态路由自己控制非注册中心控制涉及两个很重要的Bean RouteDefinitionWriter用于添加、修改、删除路由规则。RouteDefinitionLocator用于查询路由规则。 以及一个相关事件 RefreshRoutesEvent用于更新路由规则使上述的操作生效。 依赖及配置 先引入相关依赖 ?xml version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdcom.chilun/groupIdartifactIdAPI_OPEN_SPACE_GATEWAY/artifactIdversion1.0-SNAPSHOT/versionpropertiesjava.version17/java.versionmaven.compiler.source17/maven.compiler.sourcemaven.compiler.target17/maven.compiler.target/propertiesdependencyManagementdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.7.9/versiontypepom/typescopeimport/scope/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-dependencies/artifactIdversion2021.0.5/versiontypepom/typescopeimport/scope/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-dependencies/artifactIdversion2021.0.5.0/versiontypepom/typescopeimport/scope/dependency/dependencies/dependencyManagementdependenciesdependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-gateway/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-config/artifactId/dependencydependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-nacos-discovery/artifactIdversion2021.0.5.0/version/dependencydependencygroupIdorg.springframework.cloud/groupIdartifactIdspring-cloud-starter-bootstrap/artifactId/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId/dependencydependencygroupIdcom.github.xiaoymin/groupIdartifactIdknife4j-spring-boot-starter/artifactIdversion3.0.3/version/dependency/dependencies /project 以及配置文件application.yml server:port: 8002 logging:level:org.springframework.cloud.gateway: DEBUG myGateway:RoutePrefix: api spring:profiles:active: devmvc:pathmatch:matching-strategy: ant_path_matchercloud:gateway:enabled: true服务中心相关配置 spring.cloud.nacos.config.server-addr127.0.0.1:8848 spring.application.namegateway 核心代码 定义服务层接口  import com.chilun.apiopenspace.gateway.entity.dto.DeleteRouteRequest; import com.chilun.apiopenspace.gateway.entity.dto.InitRouteRequest; import com.chilun.apiopenspace.gateway.entity.dto.SaveOrUpdateRouteRequest; import com.chilun.apiopenspace.gateway.entity.pojo.RoutePOJO; import reactor.core.publisher.Mono;import java.util.List;/*** author 齿轮* date 2024-02-08-22:39*/ public interface RouteService {void init(InitRouteRequest request);void saveOrUpdate(SaveOrUpdateRouteRequest request);void delete(DeleteRouteRequest request);void refresh();MonoListRoutePOJO getAll(); } 实现类适配器模式 package com.chilun.apiopenspace.gateway.service.impl;import com.chilun.apiopenspace.gateway.entity.dto.DeleteRouteRequest; import com.chilun.apiopenspace.gateway.entity.dto.InitRouteRequest; import com.chilun.apiopenspace.gateway.entity.dto.SaveOrUpdateRouteRequest; import com.chilun.apiopenspace.gateway.entity.pojo.RoutePOJO; import com.chilun.apiopenspace.gateway.service.RouteService; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.gateway.event.RefreshRoutesEvent; import org.springframework.cloud.gateway.filter.FilterDefinition; import org.springframework.cloud.gateway.handler.predicate.PredicateDefinition; import org.springframework.cloud.gateway.route.RouteDefinition; import org.springframework.cloud.gateway.route.RouteDefinitionLocator; import org.springframework.cloud.gateway.route.RouteDefinitionWriter; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.stereotype.Service; import reactor.core.publisher.Mono;import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.net.URI; import java.util.Collections; import java.util.List; import java.util.stream.Collectors;/*** author 齿轮* date 2024-02-08-22:43*/ Service public class RouteServiceAdepter implements RouteService, ApplicationEventPublisherAware {Resourceprivate RouteDefinitionWriter routeDefinitionWriter;Resourceprivate RouteDefinitionLocator locator;Value(${myGateway.RoutePrefix})private String routePrefix;// PostConstruct // public void test(){ // SaveOrUpdateRouteRequest saveOrUpdateRouteRequest new SaveOrUpdateRouteRequest(); // saveOrUpdateRouteRequest.setUri(https://www.baidu.com); // saveOrUpdateRouteRequest.setId(1); // saveOrUpdate(saveOrUpdateRouteRequest); // }Overridepublic void init(InitRouteRequest request) {request.getList().forEach(this::saveOrUpdate);this.publisher.publishEvent(new RefreshRoutesEvent(this));}Overridepublic void saveOrUpdate(SaveOrUpdateRouteRequest request) {RouteDefinition routeDefinition new RouteDefinition();routeDefinition.setId(request.getId());routeDefinition.setUri(URI.create(request.getUri()));String Path / routePrefix / request.getId();routeDefinition.setPredicates(Collections.singletonList(new PredicateDefinition(Path Path)));routeDefinition.setFilters(Collections.singletonList(new FilterDefinition(SetPath/)));routeDefinitionWriter.save(Mono.just(routeDefinition)).subscribe();}Overridepublic void delete(DeleteRouteRequest request) {routeDefinitionWriter.delete(Mono.just(request.getId())).subscribe();this.publisher.publishEvent(new RefreshRoutesEvent(this));}Overridepublic void refresh() {this.publisher.publishEvent(new RefreshRoutesEvent(this));}Overridepublic MonoListRoutePOJO getAll() {return locator.getRouteDefinitions().map(routeDefinition - {RoutePOJO routePOJO new RoutePOJO();routePOJO.setId(routeDefinition.getId());routePOJO.setURI(routeDefinition.getUri().toString());routePOJO.setPredicates(routeDefinition.getPredicates().stream().map(predicate - predicate.getArgs().values().toString()).collect(Collectors.toList()));routePOJO.setFilters(routeDefinition.getFilters().stream().map(FilterDefinition::getName).collect(Collectors.toList()));return routePOJO;}).collectList();}private ApplicationEventPublisher publisher;Overridepublic void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {this.publisher applicationEventPublisher;} }Controller层代码 package com.chilun.apiopenspace.gateway.controller;import com.chilun.apiopenspace.gateway.entity.dto.DeleteRouteRequest; import com.chilun.apiopenspace.gateway.entity.dto.InitRouteRequest; import com.chilun.apiopenspace.gateway.entity.dto.SaveOrUpdateRouteRequest; import com.chilun.apiopenspace.gateway.entity.pojo.RoutePOJO; import com.chilun.apiopenspace.gateway.service.RouteService; import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Mono;import javax.annotation.Resource; import java.util.List;/*** author 齿轮* date 2024-02-13-22:13*/ RestController RequestMapping(/manage) public class RouteController {ResourceRouteService service;PostMapping(/update)public void add(RequestBody SaveOrUpdateRouteRequest request) {service.saveOrUpdate(request);}PostMapping(/init)public void init(RequestBody InitRouteRequest request) {service.init(request);}PostMapping(/delete)public void delete(RequestBody DeleteRouteRequest request) {service.delete(request);}GetMapping(/getAll)public MonoListRoutePOJO getAll() {return service.getAll();}GetMapping(/refresh)public void refresh(){service.refresh();} } 代码请自行查看看不懂就问大语言模型。 代码逻辑较简单仅基本增删改查功能其他延伸方面如安全等请自行探索。 其他代码 实体类 package com.chilun.apiopenspace.gateway.entity.dto;import lombok.Data;/*** author 齿轮* date 2024-02-13-20:01*/ Data public class DeleteRouteRequest {String id; }package com.chilun.apiopenspace.gateway.entity.dto;import lombok.Data;import java.util.List;/*** author 齿轮* date 2024-02-13-20:00*/ Data public class InitRouteRequest {ListSaveOrUpdateRouteRequest list; }package com.chilun.apiopenspace.gateway.entity.dto;import lombok.Data;/*** author 齿轮* date 2024-02-13-19:55*/ Data public class SaveOrUpdateRouteRequest {String id;String uri; }package com.chilun.apiopenspace.gateway.entity.pojo;import lombok.Data;import java.util.List;/**** Route实体类用于远程调用接受参数* author 齿轮* date 2024-02-13-19:53*/ Data public class RoutePOJO {String id;String URI;ListString Predicates;ListString Filters; }swagger文档配置类 package com.chilun.apiopenspace.gateway.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** author 齿轮* date 2024-02-14-1:32*/ Configuration EnableSwagger2 Profile({dev}) public class Knife4jConfig {Beanpublic Docket defaultApi2() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(new ApiInfoBuilder().title(API开放平台接口文件).description(API开放平台).contact(new Contact(chilun, http://home.shoumingchilun.cn, 2265501251qq.com)).version(1.0).build()).select()// 指定 Controller 扫描包路径.apis(RequestHandlerSelectors.basePackage(com.chilun.apiopenspace.gateway.controller)).paths(PathSelectors.any()).build();} }
http://www.hkea.cn/news/14535280/

相关文章:

  • 平面设计师作品网站ps 做儿童摄影网站首页
  • 浦江做网站直播网站
  • 电子商务网站建设指导书永川网站建设公司
  • 广东省网站备案注销农技推广
  • 三好街做网站的怎么做网站上做电子书
  • 免费php网站源码百度公司招聘条件
  • 舟山网站建设免费咨询网站开发与应用论文
  • 建设学分银行网站策划书网站建设常用字体
  • 做字幕网站外贸出口网
  • 深圳市建设设计院网站做网站费用上海
  • 济南网站优化收费网站优化公司谷歌优化
  • 河南省住建局官方网站网站开发绩效考核与薪酬
  • 如何在腾讯云建设网站中国核工业第二三建设有限公司
  • 高端网站建设哪家公司好贺州住房和城乡建设部网站
  • 400网站建设价格tomcat wordpress
  • 网站设计的公司叫什么便宜自适应网站建设
  • 做网站开发 甲方提供资料济南网站建设市场
  • 成都做个网站珠海市住房建设局网站
  • 如何做阿语垂直网站传奇手游平台
  • django做视频网站微信手机版登录入口
  • 网站可做哪些服务中国公司排名500强名单
  • 怀化组织部网站微信网站html5
  • 汕头市公司网站建设多少钱呼和浩特企业网站排名优化
  • 专业网站建设方案宁波怎么建网站模板站
  • 两学一做网站安徽省百度seo推广怎么收费
  • 网站开发建设公司电话义乌制作网站
  • 做网站怎么赚钱 111网站建设如何开票
  • 微信自创小程序深圳视频seo
  • 织梦导航网站模板网站首页该怎么做
  • 如何在局域网建立网站临沂谁会做网站