springcloud - alibaba - 2 - 集成Feign 和 Ribbon - 更新完成


1、依赖

  • 依赖管理


        spring-boot-parent
        org.springframework.boot
        2.3.12.RELEASE
        
    

  • 项目需要的依赖


        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.projectlombok
            lombok
        

        
            org.springframework.boot
            spring-boot-starter-test
        


        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                Hoxton.SR12
                pom
                import
            

            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.2.6.RELEASE
                pom
                import
            
        
    

截图

2、服务提供者

2.1)、yml配置


server:
  port: 8011

spring:
  application:
    name: ALIBABA-PUBLISHER
  cloud:
    nacos:
      discovery:
        server-addr: 162.14.66.60:8848  # 自己的服务器ip:8848

management:
  endpoints:
    web:
      exposure:
        include: "*" #健康检查

截图

2.2)、启动类编写


package cn.zixieqing;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

/**
 * @ClassName PublisherApplication
 * @Author ZiXieQing
 * @Date 2021/12/7
 * Version 1.0
 **/

@SpringBootApplication
@EnableDiscoveryClient      // 开启nacos的客户端功能
public class PublisherApplication {

    public static void main(String[] args) {

        SpringApplication.run(PublisherApplication.class, args);
    }
}

截图

2.3)、controller编写


package cn.zixieqing.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;


@RestController
@RequestMapping("/provider")
public class ProvideService {

    @GetMapping("/service")
    public String provideService() {

        return "this is my son";
    }
}

3、Feign

3.1)、导入依赖


    
        
            org.springframework.cloud
            spring-cloud-starter-openfeign
        
    

截图

3.2)、编写yml


server:
  port: 8012

spring:
  cloud:
    nacos:
      discovery:
        server-addr: 162.14.66.60:8848  # 自己的服务器ip:8848

  application:
    name: ALIBABA-OPENFEIGN

截图

3.3)、接口编写


package cn.zixieqing;


import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@FeignClient(value = "ALIBABA-PUBLISHER")  // publisher中注册进去的服务名
public interface ProxyService {

    @RequestMapping(value = "/provider/service" , method = RequestMethod.GET)
    String provideService();

}

截图

3.4)、启动类编写


package cn.zixieqing;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;


@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class OpenFeignApplication {

    public static void main(String[] args) {

        SpringApplication.run(OpenFeignApplication.class, args);
    }
}

截图

3.5)、服务消费层编写


package cn.zixieqing.controller;

import cn.zixieqing.ProxyService;
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;

/**
 * @ClassName getService
 * @Author ZiXieQing
 * @Date 2021/12/7
 * Version 1.0
 **/

@RestController
@RequestMapping("/test")
public class getService {

    @Autowired
    private ProxyService proxyService;

    @GetMapping("/getService")
    public String getServer() {

        return proxyService.provideService();

    }
}

截图

4、启动publisher 和 Feign

截图

截图