微服务SpringCloud开弓之 Rest微服务工程搭建《二》

微服务---SpringBoot简介+项目搭建+接口的写法+运行 微服务—SpringBoot简介+项目搭建+接口的写法+运行 一、简介: 1:敏捷开发(整合矿建) 2:无需tomcat(java应用程序运行,实际jar包),内置tomcat 3:减少xml配置(没有xml),配置文件 4:SpringBoot和微服务有什么关联呢? 目前来说SpringCloud(Http接口+rest),基于SpringBoot web 组件分装SpringMVC 二、创建S... 阅读详情

构建步骤

1. Cloud-provider-payment8001 微服务提供者Module模块
  • 建module

  • 改POM

      <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
            </dependency>
            <!--mysql-connector-java-->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
    
  • 写YML

    server:
      port: 8001
    
    spring:
      application:
        name: cloud-provider-service
      datasource:
        username: root
        password: 123
        url: jdbc:mysql://localhost:3306/db2019?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
        driver-class-name: com.mysql.cj.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
    
    mybatis:
      mapper-locations: classpath:mapper/*.xml
      type-aliases-package: com.atguigu.springcloud.entities
    
  • 主启动

    @SpringBootApplication
    public class PaymentMain8001 {
        public static void main(String[] args) {
            SpringApplication.run(PaymentMain8001.class);
        }
    }
    
  • 业务类

    1.建库

    CREATE TABLE `payment`(
    	`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
    	`serial` varchar(200) DEFAULT '',
    	PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
    

    2.emtities

    • 主实体Payment

      @Data
      @AllArgsConstructor
      @NoArgsConstructor
      public class Payment  implements Serializable {
      
          private  Long id;
          private String serial;
      }
      
    • Json封装体CommonResult (用于给前端传送json数据)

      @Data
      @AllArgsConstructor
      @NoArgsConstructor
      public class CommonResult<T> {
          private Integer code;
          private String message;
          private  T      data;
      
          public CommonResult(Integer code,String message){
              this(code,message,null);
          }
      
      }
      

    3.dao

    • 接口PaymentDao

      @Mapper
      public interface PaymentDao {
      
          public  int  create(Payment payment);
      
          public  Payment  getPaymentById(@PathParam("id") Long id);
      }
      
    • mybatis的映射文件PaymentMapper.xml 对应放到resource下的mapper,与接口名对应

      • src\main\resources\mapper\PaymentMapper.xml
      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      <mapper namespace="com.atguigu.springcloud.dao.PaymentDao">
          <insert id="create" parameterType="payment" useGeneratedKeys="true" keyProperty="id">
              insert  into payment(serial) values (#{serial});
          </insert>
      
          <resultMap id="BaseResultMap" type="com.atguigu.springcloud.entities.Payment">
              <id column="id" property="id" jdbcType="BIGINT"/>
              <id column="serial" property="serial" jdbcType="VARCHAR"/>
          </resultMap>
          <select id="getPaymentById" parameterType="Long" resultMap="BaseResultMap">
              select  * from payment where  id=#{id};
          </select>
      </mapper>
      

      mapper.xml的头部结构

      <?xml version="1.0" encoding="UTF-8" ?>
      <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      <mapper namespace="com.atguigu.springcloud.dao.PaymentDao">
      </mapper>
      

    4.service

    • 接口PaymentService

      public interface PaymentService {
          public  int  create(Payment payment);
      
          public  Payment  getPaymentById(@PathParam("id") Long id);
      }
      
    • 实现类

      @Service
      public class PaymentServiceImpl implements  PaymentService {
      
          @Resource
          private PaymentDao paymentDao;
          @Override
          public int create(Payment payment) {
              return  paymentDao.create(payment);
      
          }
      
          @Override
          public Payment getPaymentById(Long id) {
              return paymentDao.getPaymentById(id);
          }
      }
      

​ 5.controller

@RestController
@Slf4j
public class PaymentController {

    @Resource
    private PaymentService paymentService;

    @PostMapping(value = "/payment/create")
    public  CommonResult create(Payment payment){
        int result = paymentService.create(payment);
        log.info("###########插入结果"+result);
        if(result>0){
            return new CommonResult(200,"插入数据库成功",result);
        }else{
            return new CommonResult(444,"插入数据库失败",null);
        }
    }

    @GetMapping(value = "/payment/get/{id}")
    public CommonResult getPaymentById(@PathVariable("id") Long id) {
        Payment paymentById = paymentService.getPaymentById(id);
        log.info("*********查找结果为: " + paymentById);
        if (paymentById != null) {
            return new CommonResult(200, "查找成功", paymentById);
        } else {
            return new CommonResult(444, "查找为空,查找ID为: " + id, null);
        }
    }
}
  • 测试

    访问地址: http://localhost:8001/payment/get/31

    结果

    {"code":200,"message":"查找成功","data":{"id":31,"serial":"尚硅谷01"}}
    

    postman模拟: http://localhost:8001/payment/create?serial=atguigu002

    结果

    {
        "code": 200,
        "message": "插入数据库成功",
        "data": 1
    }
    

    Dashboard窗口

在这里插入图片描述

<component name="RunDashboard">
    <option name="configurationTypes">
      <set>
        <option value="SpringBootApplicationConfigurationType" />
      </set>
    </option>
  </component> 

在这里插入图片描述

在这里插入图片描述

Dashboard窗口方法二

[

  • 小总结
  1. 建module
  2. 改POM
  3. 写YML
  4. 主启动
  5. 业务类
2.热部署
  • Adding devtools to your project

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    
  • Adding plugin to your pom.xml

    下面配置我们粘贴进聚合父类总工程的pom.xml里
    <build>
        <fileName>你自己的工程名字<fileName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork>
                    <addResources>true</addResources>
                </configuration>
            </plugin>
        </plugins>
    </build>
    
  • Enabling automatic build

在这里插入图片描述
在这里插入图片描述

  • 重启idea
3.cloud-consumer-order80 微服务消费者订单Module模块
  • 建cloud-consumer-order80

  • 改POM

        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
  • 写YML

    server:
      port: 80
    
  • 主启动

    @SpringBootApplication
    public class OrderMain80 {
        public static void main(String[] args) {
            SpringApplication.run(OrderMain80.class,args);
        }
    }
    
  • 业务类

    • entites 和 Cloud-provider-payment8001 一样

    • 首说Resttemplate

在这里插入图片描述

  • config对其配置
```xml
@Configuration
public class ApplicationContextConfig {

    @Bean
    public RestTemplate getRestTemplate(){
        return  new RestTemplate();
    }
}
```
  • controller

    @RestController
    @Slf4j
    public class OrderController {
    
        public static  final  String  PAYMENT_URL="http://localhost:8001";
    
        @Resource
        private RestTemplate restTemplate;
    
        @GetMapping("/consumer/payment/create")
        public CommonResult<Payment> create(Payment payment){
            return  restTemplate.postForObject(PAYMENT_URL+"/payment/create",payment,CommonResult.class);
        }
    
    
        @GetMapping("/consumer/payment/{id}")
        public  CommonResult<Payment> getPayment(@PathVariable("id") Long id){
            return restTemplate.getForObject(PAYMENT_URL+"/payment/get/"+id,CommonResult.class);
        }
    }
    
  • 测试

    http://localhost/consumer/payment/32

    http://localhost/consumer/payment/create?serial=222

​ 注意

测试一下插入发现成功了,但是数据库没值,只有自增主键,这里插入没成功的原因是,8001的创建参数没加@RequestBody,

4. 工程重构
  • 系统中有重复部分,重构

在这里插入图片描述

  • 新建

    cloud-api-common

  • POM

      <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-devtools</artifactId>
                <scope>runtime</scope>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>5.1.0</version>
            </dependency>
        </dependencies>
    
  • entties

    Payment实体、CommonResult通用封装类 进行打包

  • maven命令clean install

  • 订单80和支付8001分别改造

    1、删除各自的原先的entities文件夹

    2、分别在pom文件中进行配置

    <dependency>
        <groupId>com.atguigu.springcloud</groupId>
        <artifactId>cloud-api-common</artifactId>
        <version>${project.version}</version>
    </dependency>
    

欢迎转载和分享,记得点赞呀

Invalid bound statement (not found): com.atguigu.springcloud.dao.PaymentDao.getPaymentById Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Fri Aug 07 14:31:55 CST 2020 There was an unexpected error (type=Internal Server Error, status=500). Invalid bound statement (not found): com. 阅读详情

相关推荐

最新收集的javascript网页特效很全很多

最新收集的javascript网页特效很全很多最新收集的javascript网页特效很全很多最新收集的javascript网页特效很全很多

Invalid bound statement (not found): com.atguigu.springcloud.dao.PaymentDao.getPaymentById错误

Invalid bound statement (not found): com.atguigu.springcloud.dao.PaymentDao.getPaymentById

ccpshare的博客 3488

DNA pull-down技术避坑指南:从探针设计到质谱验证的完整实验方案

本文提供了一份详尽的DNA pull-down技术实战避坑指南,涵盖从探针设计、生物素标记、磁珠选择与预处理,到结合洗脱优化及下游质谱验证或Western Blot验证的全流程。重点解析了如何通过精细操作降低非特异性结合、提高实验特异性与重复性,并对比了质谱与WB两种验证路径的适用场景,旨在帮助研究者构建稳健可靠的DNA-蛋白质互作研究体系。

weixin_29274337的博客 493

Spring Cloud笔记-微服务架构编码构建(四)

我们要实现的功能是:订单-支付模块微服务,然后将上节课提到的技术挨个加进去。 我们遵循的原则是:约定>配置>编码。 1.IDEA新建Project工作空间 1.微服务Spring Cloud整体聚合父工程 新建Maven项目,选择org.apache.maven.archetypes:maven-archetype-site,GroupId为com.atguigu.springcloud,ArtifactId为cloud2020,指定自己的Maven,不要使用IDEA内置的。 修改项目

王劭阳的博客 948

LayaNative源码编译

修改好后的LayaNative2.0需要重新编译生成Android和iOS所需要的动态库文件。

末之 1358

传感器融合的智能演进:ST-MC-Workbench中霍尔与编码器的协同控制策略

本文探讨了ST-MC-Workbench中霍尔传感器与编码器的协同控制策略,通过传感器融合技术提升电机控制精度。文章详细介绍了分层处理架构、霍尔安装角度优化及编码器Z脉冲容错机制,展示了在新能源汽车和工业应用中的实际效果,为高精度位置检测提供了解决方案。

weixin_29159441的博客 481

微服务SpringCloud开弓之SpringCloud config分布式配置中心「十」

文章目录1、概述2、Config服务端配置与测试3、Config客户端配置与测试4、Config客户端手动动态刷新 1、概述 地址 分布式系统面临的问题–配置问题 是什么 ​ Springcloud config为微服务架构中的微服务提供集中化的外部配置支持,配置服务器为各个不同微服务应用的所有环境提供一个中心化的外部配置。 能干嘛 ​ 1、集中管理配置文件 ​ 2、不同环境不同配置,动态化的配置更新,分环境部署比如dev/test/prod/beta/release

python_start的博客 263

手把手教你用UNI-MOL进行分子性质预测:从3D构象到实战结果

本文提供了使用UNI-MOL进行分子性质预测的完整实战指南。通过详细的环境搭建、3D构象生成、模型加载与微调步骤,手把手教你构建端到端的预测流水线。文章重点解析了如何利用UNI-MOL的3D分子表示学习能力,超越传统2D方法,实现对溶解度、活性等性质的更精准预测,并探讨了结果解读与模型分析方法。

weixin_29164091的博客 116

SpringCloud入门最佳实践(三)Rest微服务构建案例工程模块

介绍 承接着我们的springmvc+mybatis+mysql初级高级课程,以Dept部门模块做一个微服务通用案例Consumer消费(Client)通过REST调用Provider提供者(Server)提供的服务。 涉及到的知识点:SpringMVC、Mybatis、Maven 涉及到的知识点 SpringMVC Mybatis Maven 一个简单的...

Fireworks 1284

单片机:实现FFT快速傅里叶变换算法(附完整源码)

单片机:实现FFT快速傅里叶变换算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1098

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(一)校园网核心交换机配置

本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。

echo的博客 3791

springcloud- cloud H&alibaba版本(超详细!第一部分)

微服务架构: 它是一种架构模式,它提倡将单一应用程序划分为一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务于服务间采用轻量级的通信机制互相协作(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。 一个微服务架构里面包含哪些东西? 服务注册与发现 、服务调用

qq_38009397的博客 4405

二十八.国民技术MCU开发之UID获取与应用

在国民NT MCU中均有一个96位和128位的唯一设备标识符,其中UCID128 位, UID 为 96 位。手册中描述的作用是:通常用来做为序列号或作为密码,在编写闪存时,将此唯一标识与软件加解密算法相结合,进一步提高代码在闪存存储器内的安全性,也可用于激活带安全功能的自举程序(SecureBootloader)。UCID 和 UID,遵守国民技术芯片序列号定义,它包含芯片生产及版本相关信息。

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 1676

从 MVC 到前后端分离

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33965305的博客 398

在Allegro设计界面中如何修改封装焊盘

在高密度板的情况下,SUIPLA(支持内层没有的焊盘摘掉)打勾,在高密度板的情况下,内层没有的焊盘摘掉可以增加走线的空间。3、修改完焊盘后,选择File→Update to Design(更新到设计)。然后关闭焊盘修改对话框即可。,将会定期不定期更新技术文章,互相学习交流。或者点击Options选项卡下要修改的焊盘,然后点击Edit修改。在Allegro PCB设计界面中修改封装焊盘的方法。2、然后点击封装上要修改的焊盘,右击选择Edit。修改完成后如下图所示。

bhxc809751502的博客 7806

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SpringCloud——支付子模块构建

这里我们模拟下订单然后支付业务,这里定义两个微服务模块,订单order模块、支付payment模块 大致建立流程: 建module 改pom 写yml 主启动 业务类 一、建立微服务支付模块 在父工程下新建支付子模块 选定jdk 子模块名称命名 下一步完成后 这里碰到一个坑,请大家一定的留意留意 SpringCloud——idea删除模块后,重新创建同名模块!踩坑!! 二、支付模块pom文件 <?xml versio...

辰小白 728

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

搭建springcloud的demo之Rest微服务构建案例工程模块(一)

1.先创建一个父工程 microservicecloud ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190305113447292.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1YW50a...

yuanting_的博客 1226

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

springcloud微服务学习笔记(四):支付模块(下)

1.建表 2.entities 使用了 /** * 实体类 */ @Data @AllArgsConstructor @NoArgsConstructor public class Payment implements Serializable { private Long id; private String serial; } /** * 返回数据 * @param <T> */ @Data @AllArgsConstructor @NoArgsCons

weixin_44871934的博客 1543

微服务架构与开源框架

                                                                                                                微服务架构介绍及实践微服务现在是一个很火的概念,尤其是搞IT的大多数都对其有所了解。到底火到什么程度呢?2016年有一个统计说,两千家企业里,30%在使用微服务,15%在实验开...

mql007007的博客 1万+

跟着尚硅谷周阳老师一步步构建分布式微服务架构(初级篇)

前言: 十分喜欢尚硅谷老师的课程,此文章为记录周阳老师的2020最新版Springcloud的学习笔记。 技术 版本 cloud Hoxton.SR1 boot 2.2.2.RELEASE cloud alibaba 2.1.0.RELEASE java java8 Maven 3.5及以上 Mysql 5.7及以上 1. 新建Maven父工程 cloud...

深海的鱼 5万+

springcloud笔记01重要_支付模块、lombok使用、IDEA打开文件显示多行

manven工程要发布一些包给别的工程共用时,可以先clean,后install发布到仓库 注意Maven中dependencyManagement和dependencies的区别:dependencyManagement并没有引入jar 支付模块 订单模块调用支付模块(微服务提供者) 记住:约定 》 配置 》 编码 改POM和写Yml一般都不自己写, 但是application.yml中建议有微服务端口号和服务名称 建表 CREATE TABLE payment ( id BIGINT(2

TimEcho的博客 452

零基础秒懂:手把手教你搭建一套微服务框架!

这套微服务框架能干啥? 这套系统搭建完之后,可以实现: 微服务架构,你的整个应用程序将会被拆分成一个个功能独立的子系统,独立运行,系统与系统之间通过 RPC 接口通信。 这样系统之间的耦合度大大降低,你的系统将非常容易扩展,团队协作效率提升了 N 个档次。 这种架构通过眼下流行的 Spring Boot 和阿里巴巴吊 Dubbo 框架来实现。 容器化部署,你的各个微...

HelloWorld搬运工 4万+

微服务框架的介绍

一、什么是微服务 微服务并没有一个官方的定义,可以理解为一种架构风格,将一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。 以往的应用程序开发中,应用程序都是单体型,在开发和部署上比较方便,但是随着业务的不断增加,开发迭代和性能瓶颈等问题都会增加开发难...

polo2044的专栏 4万+

ElasticSearch最新搞定版

ElasticSearch概述 Lucene 和 ElasticSearch 关系: ElasticSearch 是基于 Lucene 做了一些封装和增强 Elaticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检 索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。es也使用 Java开发并使用Lucene作为其核心...

python_start的博客 926

微服务SpringCloud开弓之SpringCloud Alibaba Sentinel实现熔断与限流「十四」

文章目录SpringCloud Alibaba Sentinel实现熔断与限流1、Sentinel2、安装Sentinel控制台3、初始化演示工程4、流控规则5、降级规则6、热点key限流1、基本介绍2、参数例外项7、系统规则8、@SentinelResource1、按资源名称限流+后续处理2、按照Url地址限流+后续处理3、客户自定义限流处理逻辑4、更多注解属性说明9、服务熔断功能Ribbon系列Feign系列熔断框架比较10、规则持久化 SpringCloud Alibaba Sentinel实现熔断与

python_start的博客 869
上一篇: 微服务Springcloud开弓之框架搭建《一》
下一篇: 微服务SpringCloud开弓之Eureka服务注册与发现《三》
漂吧
博客等级 码龄8年 15粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值