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 ,启动类,如果出现下图,则表明运行成功
    SpringCloud Fegin - 如何从数据库服务读取数据_第1张图片
  2. 然后浏览器访问注册中心地址 如下图可以看到注册成功了
    其中,1为你自己的服务,2为数据库服务
    SpringCloud Fegin - 如何从数据库服务读取数据_第2张图片5:点击上图的 3,会出现类似下图的内容,这就是在你的服务中调用数据库服务需要的内容:
    method表示读取的方式
    path为访问路径
    SpringCloud Fegin - 如何从数据库服务读取数据_第3张图片

2:配置Fegin客户端

   假设我们现在就想在fegin-demo服务中完成上图 describe 内容,具体步骤如下:

  1. 在pom.xml中添加下面依赖(记得放到dependencies标签中)


   		org.springframework.cloud
   		spring-cloud-starter-feign

  1. 在主启动类上添加这个注解@EnableFeignClients表明这是Fegin的客户端

  2. WdsStRsvrRParmVO类(找我要)复制到 main/vo包下,将WdsStRsvrREntity复制到main/entity包下。复制后请记得检查下包的导入关系。
    备注:如果在Entity类中,发现import javax.persistence.*出现错误,在pom.xml中添加下面依赖并刷新就可以导入了。


  		javax.persistence
   		persistence-api
   		1.0

  1. 接下来,在main下新建包config,然后新建接口DataClient,并按照下面的格式写好接口
    SpringCloud Fegin - 如何从数据库服务读取数据_第4张图片
/这里不用改
@FeignClient(name = "data") 
public interface DataClient {
	
	//双引号里对应上图的path
	@PostMapping("/wdsstrsvrr/listByIdAndTime") 
	
	//WdsStRsvrRParmVO 对应上图的 input
	public List<WdsStRsvrREntity> listByIdAndTime(@RequestBody WdsStRsvrRParmVO  wdsStRsvrRParmVO);
}

3 读取数据

  接下来,假设我们需要在 TestWd类中使用WdsStRsvrREntity,具体步骤如下

  1. 首先确保 TestWd 类已添加 @Component 注解
  2. 然后在Test新写一个全局变量如下
@Autowired
private DataClient dataClient;
  1. 在需要的WdsStRsvrREntity的方法中,直接写
WdsStRsvrRParmVO ws =new WdsStRsvrRParmVO(id,startTime,endTime);
List = dataClient.listByIdAndTime(ws);

另计:
如果上面步骤完成后,仍有报错,则可能是依赖出现问题了,建议强制更新依赖包:Eclpise–〉项目右键–〉maven–>maven update
SpringCloud Fegin - 如何从数据库服务读取数据_第5张图片

示例代码:
fegin-demo

你可能感兴趣的:(SpringCloud)