zoukankan      html  css  js  c++  java
  • Spring Cloud Alibaba OpenFeign

    application.xml

    server:
      port: 8040
      #应用名称  (nacos 会将该名称当作服务名称)
    spring:
      application:
        name: order-openfeign-service
      cloud:
        nacos:
    #      server-addr: 127.0.0.1:8848
          server-addr: 192.168.133.128:8847  #集群 nginx 负载均衡访问 nacos
          discovery:
            username: nacos
            password: nacos
            namespace: public

    pom.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <parent>
            <artifactId>springcloudalibaba</artifactId>
            <groupId>com.wsm.springcloud</groupId>
            <version>0.0.1-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
    
        <artifactId>order-openfeign</artifactId>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
    <!--            <version>2.5.5</version>-->
            </dependency>
    
            <!-- nacos 服务注册发现  -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            </dependency>
    
            <!-- 添加 openfeign 依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-openfeign</artifactId>
            </dependency>
    
    
        </dependencies>
    
    </project>

    package com.wsm.order;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.web.client.RestTemplateBuilder;
    import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
    import org.springframework.cloud.client.loadbalancer.LoadBalanced;
    import org.springframework.cloud.openfeign.EnableFeignClients;
    import org.springframework.context.annotation.Bean;
    import org.springframework.web.client.RestTemplate;
    
    @SpringBootApplication
    //@EnableDiscoveryClient 老版本要加,
    @EnableFeignClients
    public class OrderApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(OrderApplication.class,args);
        }
    
    //    @Bean
    //    @LoadBalanced //启用负载均衡
    //    public RestTemplate restTemplate(RestTemplateBuilder builder){
    //        RestTemplate restTemplate = builder.build();
    //        return restTemplate;
    //    }
    }
    package com.wsm.order.feign;
    
    import org.springframework.cloud.openfeign.FeignClient;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    /**
     * 添加feign接口的方法
     * name 指定调用rest接口所对应的服务名
     * path 指定调用rest接口所在的StockController指定的@RequestMapping
     */
    @FeignClient(name = "stock-service",path="/stock")
    public interface StockFeignService {
    
        //声明需要调用的rest接口对应的方法
        @RequestMapping("/reduct")//与 StockController 中的reduct()方法的@RequestMapping一致
        public String reduct(); //与 StockController 中的reduct()方法对应
    }
    package com.wsm.order.controller;
    
    import com.wsm.order.feign.StockFeignService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.client.RestTemplate;
    
    import javax.swing.*;
    
    @RestController
    @RequestMapping("/order")
    public class OrderController {
    
    //    @Autowired
    //    RestTemplate restTemplate;
        @Autowired
        StockFeignService stockFeignService;
    
        @RequestMapping("/add")
        public String add(){
            System.out.println("aaaaaaaaaaaaa");
    //        String msg = restTemplate.getForObject("http://localhost:8011/stock/reduct", String.class);
    //        String msg = restTemplate.getForObject("http://stock-service/stock/reduct", String.class);
            String msg = stockFeignService.reduct();
            return "hello feign "+msg;
        }
    }

  • 相关阅读:
    数据库表结构查询SQL
    Java实现数据库备份并利用ant导入SQL脚本
    生死看淡,不服就干。SQL常见的一些优化。
    mybatis + PageHelper 实现分页
    自定义数据库连接池实现方式 MySQL
    Docker 镜像基础(三)
    Docker 镜像管理及基础命令(二)
    Docker 介绍和安装(一)
    Docker 镜像管理及基础命令(二)
    Tomcat-8 安装和配置
  • 原文地址:https://www.cnblogs.com/mingforyou/p/15519452.html
Copyright © 2011-2022 走看看