Springcloud項目簡單搭建四(服務消費者)

上篇文章中測試的時候我使用的postman來測試接口,現在我們要創建一個真正使用接口的服務.

創建項目

  1. 首先在使用工具創建一個springboot項目 在pom中添加如下配置:

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!--必須的  否則在註冊中心找不到要使用的服務-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

這裏我們使用feign來訪問我們想要的服務.

項目配置文件中我們啓用feign的熔斷功能,在application.yml中添加如下內容:

feign:
  hystrix:
    enabled: true

在項目啓動類上添加註解,開啓feign

@EnableFeignClients

使用feign調用其他服務

創建完成項目之後,我們看怎麼來使用前面創建的pay-server服務中的內容

在前面創建的pay-server服務中創建了一個測試的可訪問的方法:

@RestController
@RequestMapping("pay")
public class TestController {

    @RequestMapping("test")
    public JSONObject test(){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("test", "value1");
        return jsonObject;
    }

}

我們現在通過剛出案件的website服務來調用此方法.

首先我們創建一個feign的調用接口創建如下,註解FeignClient來聲明此接口是feign接口,裏面的value參數代表着我們前面的pay-server服務註冊到eureka中的服務名稱.當然FeignClient也能通過地址來訪問服務,但是我們有eureka註冊中心了,通過服務名來訪問服務可以實現負載均衡的能力,feign中存在着此能力.所以我們儘量使用此方式來進行服務間的訪問.接口中的抽象方法上的註解,代表着我們要訪問的服務中某個地址.也就是我們上面服務中的地址.

@FeignClient(value = "PAY-SERVER")
public interface TestServiceFeign {

    @PostMapping(value = "/pay/test", consumes = "application/json")
    JSONObject test();

}

現在創建controller如下:controller中注入此接口,然後調用接口中方法,進行測試.

@Controller
public class TestController {

    @Resource
    private TestServiceFeign service;

    @RequestMapping("")
    @ResponseBody
    public JSONObject index(){
        return service.test();
    }


}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章