spring cloud 入门(四)【Eureka注册中心,微服务之间服务调用方式二(FeignClient进行服务调用)】

FeignClient 支队服务消费方进行修改,服务提供方不需要修改

还是对  User 进行修改  UserApplication 中添加 

@EnableFeignClients

UserApplication 代码如下:

package com.study.user;


import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.cloud.netflix.feign.EnableFeignClients;

@EnableEurekaClient
@SpringBootApplication
@EnableFeignClients
public class UserApplication {

    public static void main(String[] args) {
        SpringApplication.run(UserApplication.class, args);
    }

}

UserController 代码如下:

package com.study.user.controller;

import com.study.user.service.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("user")
public class UserController {

    private final static Logger logger = LoggerFactory.getLogger(UserController.class);

    @Autowired
    private UserService userService;
    /**
     * 更新用户信息
     * <p>
     * loadBalancerClient 以及  RestTemplate 远程调用 远程服务
     *
     * @return
     */
    @GetMapping("/getMenu")
    public List<Map<String, Object>> justTest() {
        return userService.getMenu();
    }
}

UserService 代码如下:

package com.study.user.service;


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

import java.util.List;
import java.util.Map;

@FeignClient(value = "menu")
// 指定调用的 那个微服务的名称,这里调用的还是menu的 getMenu 方法
public interface UserService {


    @RequestMapping(value="/menu/getMenu")
    // 调用 menu 中 getMenu 方法
    List<Map<String, Object>> getMenu();


}
pom.xml 中添加
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

访问依然 ok

 

猜你喜欢

转载自blog.csdn.net/du_senge/article/details/83788170