栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringCloud实战项目一(项目环境的搭建001)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud实战项目一(项目环境的搭建001)

1.项目目录结构

2.创建项目名称为springcloud-001

pom.xml配置



  4.0.0

  
    org.springframework.boot
    spring-boot-starter-parent
    2.3.2.RELEASE
  

  com.xiao
  springcloud-001
  1.0

  
  pom

  
    1.8
    2.3.2.RELEASE
    2.2.6.RELEASE
    2.2.6.RELEASE
    2.2.6.RELEASE
    2.2.6.RELEASE
    2.2.6.RELEASE
    1.8.1
  

  
  
    springcloud-provider
    springcloud-consumer
    springcloud-gateway
    springcloud-api
  

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

    
      org.projectlombok
      lombok
      1.18.20
      provided
    

  

  
  
    
      
        com.alibaba.cloud
        spring-cloud-alibaba-dependencies
        ${spring-cloud-dependencies}
        pom
        import
      

      
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-discovery
        ${spring-cloud-nacos-version}
      

      
        org.springframework.cloud
        spring-cloud-starter-openfeign
        ${spring-cloud-openfeign-version}
      

      
        org.springframework.cloud
        spring-cloud-starter-gateway
        ${spring-cloud-gateway-version}
      

      
        com.alibaba.csp
        sentinel-core
        ${ali-csp-version}
      
      
        com.alibaba.csp
        sentinel-transport-simple-http
        ${ali-csp-version}
      
    
  

  
    
      
        org.springframework.boot
        spring-boot-maven-plugin
        
          true
        
        
          
            
              repackage
            
          
        
      
    
  

 3.创建网关项目,springcloud-gateway

pom.xml



    4.0.0
    
        com.xiao
        springcloud-001
        1.0
        ../pom.xml
    
    com.xiao
    springcloud-gateway
    1.0

    
        
            org.springframework.cloud
            spring-cloud-starter-gateway
        
    

application.yml

server:
  port: 9001
spring:
  application:
    name: springcloud-gateway
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.64.19:8848
    gateway:
      routes:
        - id: springcloud-consumer
          uri: lb://springcloud-consumer
          predicates:
            - Path=/consumer
@Slf4j
@Component
public class MusicClientFallbackFactory implements FallbackFactory {

    @Override
    public MusicServiceClient create(Throwable e) {
        log.error("音乐服务接口异常,原因:{}", e.getMessage(), e);
        return new MusicServiceClient() {
            @Override
            public String musicPlay(String musicPath) {
                 return "musicService服务器正在维护,请稍后再试!";
            }
        };
    }
}
MusicServiceClient.java
package com.xiao.api.feign;

import com.xiao.api.constant.CloudServiceDefinitions;
import com.xiao.api.feign.factory.MusicClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;


@FeignClient(contextId = "musicClient",name= CloudServiceDefinitions.PROVIDER_SERVICE,
    fallbackFactory = MusicClientFallbackFactory.class)
public interface MusicServiceClient {

    @GetMapping("/provider/musicplay")
    String musicPlay(@RequestParam String musicPath);
}

6.创建服务消费工程,springcloud-consumer

pom.xml



    4.0.0
    
        com.xiao
        springcloud-001
        1.0
        ../pom.xml
    
    com.xiao
    springcloud-consumer
    1.0

    

        
            org.springframework.boot
            spring-boot-starter-web
        
        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-sentinel
        
        
            com.alibaba.csp
            sentinel-core
        
        
            com.alibaba.csp
            sentinel-transport-simple-http
        
        
            com.alibaba.csp
            sentinel-web-servlet
        
        
            com.xiao
            springcloud-api
            1.0
            compile
        



    

application.yml

server:
  port: 9003
spring:
  application:
    name: springcloud-consumer
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.64.19:8848
    sentinel:
      transport:
        port: 8719
        dashboard: 192.168.233.130:9090
  main:
    allow-bean-definition-overriding: true
feign:
  sentinel:
    enabled: true
PlayerController.java
package com.xiao.consumer.controller;

import com.xiao.api.feign.MusicServiceClient;
import com.xiao.api.feign.VideoServiceClient;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;

@RestController
@Slf4j
public class PlayerController {
    @Resource
    private MusicServiceClient musicServiceClient;

    @Resource
    private VideoServiceClient videoServiceClient;

    @RequestMapping("/consumer/musicplay")
    public String musicplay(@RequestParam String musicPath){
        log.info("musicplay 调用!");
        return musicServiceClient.musicPlay(musicPath);
    }

    @RequestMapping("/consumer/videoplay")
    public String videoplay(@RequestParam String videoPath){
        log.info("videoplay 调用!");
        return videoServiceClient.videoPlay(videoPath);
    }

    @GetMapping("hello")
    public String hello(){
        return "hello";
    }
}

7.测试

分别启动服务gateway、provider、consumer

使用postMan测试接口:

http://localhost:9001/consumer/musicplay?musicPath=1

源码下载地址:

链接:https://pan.baidu.com/s/1717J8lOKNRqq-S7aTYOw_g 
提取码:ez84

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1031491.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号