在使用微服务架构中,可能遇到一些业务情况会涉及服务之间相互调用,下面通过一个简单的demo给大家演示下,演示的是oms服务需要调用ump服务。

代码如下:

1、oms服务提供者

 主要是这个注解:

@EnableFeignClients("com.omsserver.*")

完整代码:

package com.omsserver.service;

//import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.Map;

/**
 * @Description: java类作用描述
 * @Author: zhoujh
 * @CreateDate: 2019/5/10$ 11:22 AM$
 * @Version: 1.0
 */

@Service
@FeignClient("ump-service")//服务生产者名称
@RequestMapping("/api/umpinfo")//服务路由
public interface UmpInfoService {


    @RequestMapping("/umpDetails")
    Map<String,Object> umpDetails(String omsId ) ;

}

 

2、ump服务提供者(被调用)

 

完整代码:

package com.umpserver.umpserver.controller;

import com.umpserver.umpserver.service.UmpService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

/**
 * @Description: java类作用描述
 * @Author: zhoujh
 * @CreateDate: 2019/5/10$ 11:19 AM$
 * @Version: 1.0
 */

@RestController
@RequestMapping("/api/umpinfo")//服务路由
public class UmpController {

    @Autowired
    UmpService umpService;

    @RequestMapping("/umpDetails")
    @ResponseBody
    public Map<String,Object> selectUmpInfo(@RequestBody String omsId){
        Map<String,Object> map = new HashMap<>();
        map = umpService.findUmpInfo(omsId);
        return map;
    }
}

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐