從小白開始學習SpringCloud(二)

話很少說仍是先附上大佬博客:https://blog.csdn.net/springcyb/article/details/89147639java

這一次咱們來記錄一下消費者的使用,上面這個博客對於新手來講我以爲不是特別的好,由於按上面操做會遇到不少坑,博主的博客沒有問題可是有一些內容沒寫清楚,要是新手本身腦補會沒法調試web

1.繼續在上一次的項目中建立一個spring initialzr項目,起名爲spring_ribbonspring

2.配置端口app

server:
  port: 8021

spring:
  application:
    name: springcloud-myribbon

eureka:
    client:
        service-url:
            defaultZone: http://localhost:8000/eureka

3.修改主java文件負載均衡

在工程的啓動類中,經過@EnableDiscoveryClient向服務中心註冊;而且向程序的ioc注入一個bean: restTemplate;並經過@LoadBalanced註解代表這個restRemplate開啓負載均衡的功能ide

package com.example.springcloud_myribbon;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@EnableEurekaClient
@SpringBootApplication
public class SpringcloudMyribbonApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringcloudMyribbonApplication.class, args);
    }
    // 將RestTemplate注入到spring容器中
    // LoadBalanced負載均衡默認爲輪詢
    // 經過注入在controller中就可使用調用生產者實例
    @Bean
    @LoadBalanced
    RestTemplate restTemplate() {
        return new RestTemplate();
    }


}

3.消費者調用生產者測試

在以前的生產者springcloud-provider操做,創建一個UserController類,必定要看下面的目錄結構這個很重要,很重要,很重要url

UserController類所在的包和SpringcloudProviderApplication放在同一個目錄下,SpringcloudProviderApplication在運行時只會配置本身子目錄下的文件spa

代碼以下.net

package com.example.springcloudprovider.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller

public class UserController {
    /**
     * 測試
     *
     * @return
     */
    @GetMapping("testPro")
    @ResponseBody
    public String test() {
        System.out.println("ribbon調用生產者成功");
        return "success";

    }
}

 

 開始操做新建的spring_ribbon

一樣新建一個UserController,目錄結構參考上面的,記住目錄結構很重要,代碼以下

package com.example.springcloud_myribbon.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

@RestController
public class UserController {

    @Autowired
    private RestTemplate restTemplate;

    /**
     * 調用生產者
     */

    //調用請求
    //get  查
    //Post  增
    //delete 刪
    //put 改
    @GetMapping("testPro")
    public String select(){

        String result = restTemplate.getForObject("http://SPRINGCLOUD-USER-REG/testPro",String.class);
        return result;
    }
}

 

 4.運行項目,而後打開http://127.0.0.1:8021/testPro出現以下結果

5錯誤總結

若是顯示的是404說明在調用過程當中路徑除了問題,有多是地址寫錯了,也有可能時一些註解的錯誤,把主流程認真核對下

 

若是是500的問題,我遇到的就是文件目錄結構的問題,必定記住Controller要在SpringcloudProviderApplication的子目錄下

相關文章
相關標籤/搜索