SpringCloud Fegin - 如何从数据库服务读取数据

本文为我在项目中的使用,仅供项目开发人员查看

1:背景

   在从数据库服务data读取(以下简称data)之前,首先需要确保自己的服务(假设服务名为fegin-demo)是正常能向Eureka注册中心注册的,注册步骤如下:

  1. src/main/resource下的application.yml文件内容全部删除,然后添加下面代码
    备注: 端口号具体请询问快乐博或者我,服务名自己定
eureka:
  instance:
    preferIpAddress: true
    instance-id: ${spring.cloud.client.ipAddress}:${server.port}
  client:
    serviceUrl:
      defaultZone: 注册中心地址
server:
  port: 端口号
spring:
  application:
    name: fegin-demo
  1. 找到主启动类FeginDemoApplication.java(在src/main/java/com.hust.fegindemo下),在类上添加注解如下(如果有的话,就忽略这步):
@EnableDiscoveryClient
@SpringBootApplication
  1. 仍在该类下,右键 - run as - java application ,启动类,如果出现
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一个基本的工具类,用于将路由配置从数据库中读取并转换为Spring Cloud Gateway的路由定义: ```java @Component public class DatabaseRouteDefinitionProvider implements RouteDefinitionProvider { private final JdbcTemplate jdbcTemplate; public DatabaseRouteDefinitionProvider(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } @Override public Flux<RouteDefinition> getRouteDefinitions() { List<RouteDefinition> definitions = jdbcTemplate.query("SELECT * FROM routes", rs -> { List<RouteDefinition> routes = new ArrayList<>(); while (rs.next()) { RouteDefinition route = new RouteDefinition(); route.setId(rs.getString("id")); route.setUri(URI.create(rs.getString("uri"))); route.setOrder(rs.getInt("route_order")); String predicatesJson = rs.getString("predicates"); List<PredicateDefinition> predicates = new ObjectMapper().readValue(predicatesJson, new TypeReference<List<PredicateDefinition>>() {}); route.setPredicates(predicates); String filtersJson = rs.getString("filters"); List<FilterDefinition> filters = new ObjectMapper().readValue(filtersJson, new TypeReference<List<FilterDefinition>>() {}); route.setFilters(filters); routes.add(route); } return routes; }); return Flux.fromIterable(definitions); } } ``` 这个工具类使用Spring JDBC来查询数据库中的路由配置,并使用Jackson库将JSON字符串转换为Spring Cloud Gateway的路由定义对象。然后,它将这些定义添加到一个Flux对象中,并返回它以供Spring Cloud Gateway使用。请注意,此工具类仅提供了一种从数据库中读取路由配置的方法,您可以根据需要进行修改以适应您的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值