教你快速搭建微服务环境

news2025/4/16 2:50:07

目录

一、项目搭建

1.父项目搭建

2.子项目的搭建

 二、项目展示


一、项目搭建

1.父项目搭建

步骤:

        1 选择maven项目作为父项目,修改为1.8之后直接点击next

        2  定义父项目的名称,修改Artifct Coordinates ---> GroupId 然后点击finsh就可以啦

        3 修改pom.xml

1 选择maven项目作为父项目,修改为1.8之后直接点击next

 2  定义父项目的名称,修改Artifct Coordinates ---> GroupId 然后点击finsh就可以啦 

3 修改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">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.zking</groupId>
    <artifactId>spcloud-shop</artifactId>
    <version>1.0-SNAPSHOT</version>
    <modules>
        <module>shop-common</module>
    </modules>
    <packaging>pom</packaging>

    <!--依赖版本的锁定-->
    <properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.2.RELEASE</spring-boot.version>
        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
        <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- SpringBoot 依赖配置 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>

    </dependencyManagement>


</project>

2.子项目的搭建

搭建一个shop-common的maven子项目

当建完这个项目时 父项目的pom.xml就会自动多出几行代码 ,这表示

关联成功 

 

shop-common的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>spcloud-shop</artifactId>
        <groupId>com.zking</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>shop-common</artifactId>


    <!--依赖-->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.56</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.44</version>
        </dependency>
    </dependencies>


</project>

创建springboot项目: 

 

直接选择next,然后finsh就可以了 

 以同样的方式创建一下三个

 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <artifactId>spcloud-shop</artifactId>
        <groupId>com.zking</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>shop-order</artifactId>

    <dependencies>
        <!--springboot-web-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--shop-common-->
        <dependency>
            <groupId>com.zking</groupId>
            <artifactId>shop-common</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>

=====================以上的基本配置完成=========================

 二、项目展示

写入实体类

 order

package com.zking.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@AllArgsConstructor
@NoArgsConstructor
public class Order {
    private Long oid;//订单id

    //用户
    private Integer uid;//用户id
    private String username;//用户名

    //商品
    private Integer pid;//商品id
    private String pname;//商品名称
    private Double pprice;//商品单价

    //数量
    private Integer number;//购买数量
}

Product

package com.zking.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@NoArgsConstructor
@AllArgsConstructor
public class Product {
    private Integer pid;//主键

    private String pname;//商品名称
    private Double pprice;//商品价格
    private Integer stock;//库存
}

User

package com.zking.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


//用户
@Data//不再去写set和get方法
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer uid;//主键
    private String username;//用户名
    private String password;//密码
    private String telephone;//手机号
}

编写aplication.yml

 

 

 

 

编写controller层

shop-user:

package com.zking.shopuser.controller;

import com.zking.model.User;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 小何吖
 * @create 2022-11-24 15:47
 */

@RestController
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/get/{id}")
    public User get(@PathVariable("id") Integer id){
        return new User(id,"骚强","5438","3838438");
    }
}

 运行,选中写了controller的运行

 

 

 shop-product:

package com.zking.shopproduct.controller;

import com.zking.model.Product;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author 小何吖
 * @create 2022-11-24 15:52
 */

@RestController
@RequestMapping("/product")
public class ProductContoller {
    @RequestMapping("/get/{pid}")
    public Product get(@PathVariable("pid") Integer pid){
        return new Product(pid,"金瓶梅",66d,20);
    }

}

 

 shop-order:

package com.zking.shoporder.controller;

import com.zking.model.Order;
import com.zking.model.Product;
import com.zking.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * @author 小何吖
 * @create 2022-11-24 15:43
 */
@RestController
@RequestMapping("/order")
public class OrderController {


    @Autowired
    private RestTemplate restTemplate;

    @RequestMapping("/get/{uid}/{pid}")
    public Order get(@PathVariable("uid") Integer uid
                     ,@PathVariable("pid") Integer pid){
        /*
         *要在订单微服务调用 用户微服务、商品微服务、也就意味着跨项目调用
         *
         */
        User user = restTemplate.getForObject("http://localhost:8070/user/get/" + uid, User.class);
        Product product = restTemplate.getForObject("http://localhost:8080/product/get/" + pid, Product.class);
        Order order = new Order();
        order.setUsername(user.getUsername());
        order.setUid(user.getUid());
        order.setPprice(product.getPprice());
        order.setPname(product.getPname());
        order.setPid(product.getPid());
        order.setOid(System.currentTimeMillis());
        order.setNumber(product.getStock());
        return order;
    }
}

 

 

这就是简单的微服务,没有连接数据库的简单应用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/43901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

现代营销杂志现代营销杂志社现代营销编辑部2022年第11期目录

财务金融《现代营销》投稿&#xff1a;cnqikantg126.com 我国中小企业货币资金管理分析 安宁; 1-3 企业财务管理转型路径探讨 秦春; 4-6 互联网背景下电商企业税务风险研究 何秋梅; 7-9 目标成本管理在企业经济管理中的应用分析 艾蕾梅; 10-12 关于我国发展…

CentOS7.9集群部署(配置hosts、集群免密、时间同步)

在上一篇我们介绍了如何在windows下安装虚拟机&#xff0c;在虚拟机上安装CentOS7.9&#xff0c;并且在系统安装完成后配置了固定ip和系统时间。 在食用本篇之前&#xff0c;如果上述操作没有做过&#xff0c;可以先移步 windows安装VMware虚拟机(附带CentOS7部署) 但是在分布式…

文献阅读总结(3)Neural Graph Collaborative Filtering

1、Introduction 左图u1&#xff0c;右图从左图的u1开始展开 图反应的信息&#xff1a; 1、从路径u1->i2->u2,可以反映出u1和u2的相似性&#xff1b; 2、u1和i4之间有两条路径&#xff0c;而u1和i5之间只有一条路径&#xff0c;可以反应u1对i4的兴趣比u1对i5的兴趣更高…

[附源码]Python计算机毕业设计Django-Steam游戏平台系统论文

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【web网页设计期末课程大作业】基于HTML+CSS+JavaScript仿山东传媒职业学院网站

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

梯度下降原理+梯度消失和爆炸

梯度下降算法&#xff08;Gradient Descent)的原理和实现步骤 - 知乎 (zhihu.com) 梯度&#xff08;gradient&#xff09;到底是个什么东西&#xff1f;物理意义和数学意义分别是什么&#xff1f; - 知乎 (zhihu.com) 目的&#xff1a;最小化损失函数&#xff0c;一个优化的思…

流媒体传输 - RTSP 协议报文分析

在流媒体传输 - RTSP 协议中&#xff0c;我们分析 RTSP 协议交互的整个流程&#xff0c;在本篇文章中&#xff0c;我们对交互中携带的报文进行详细分析。 Request Request Request-Line ; Section 6.1*( general-header ; Section 5…

Qemu-KVM 网络性能优化实践

背景 在做优化之前&#xff0c;腾讯云上使用的母机单队列&#xff0c;性能只有14w pps。 已有的多队列版本&#xff0c;在20w pps左右&#xff0c;不是很理想。 主要问题性能 1 . 单队列成为性能瓶颈 物理主机环境&#xff0c;使用多队列已经有多年。 而在公有云上&#…

深度学习常见损失函数总结+Pytroch实现

文章目录一、引言二、损失函数1.均方差损失&#xff08;Mean Squared Error Loss&#xff09;2.平均绝对误差损失&#xff08;Mean Absolute Error Loss&#xff09;3.交叉熵&#xff08;Cross Entropy Loss&#xff09;&#xff08;1&#xff09;信息论中的熵a.熵b.相对熵&…

苹果系统(MacOS)无法下载Android SDK或下载缓慢解决办法

SDK管理器一般会在安装完Android Studio 的时候就弹出来.如果当时给关闭了或者是后续想找的话,Command, 或者通过菜单打开偏好设置以后 即可找到Android SDK的设置.与Jetbrains家族的产品方式一致.也可以直接在首屏页面上点More Actions 会出来SDK Manager 然后点击EDIT 找到缺…

DVWA靶场通关实战

DVWABrute Force&#xff08;暴力破解&#xff09;LowMediumHighImpossibleCommand Injection&#xff08;命令行注入&#xff09;LowMediumHighImpossibleCSRF&#xff08;跨站请求伪造&#xff09;LowMediumHighImpossible截至2022.11.24&#xff0c;DVWA共有十四个模块&…

TPS7A3301RGWR稳压器 AK4493EQ音频DAC,电路原理图

TPS7A33系列线性稳压器是负电压(–36V)&#xff0c;超低噪声&#xff08;16μVRMS&#xff0c;72dBPSRR&#xff09;线性稳压器&#xff0c;能够为最高1A负载供电。TPS7A33系列产品装有一个补偿金属氧化物半导体(CMOS)逻辑电平兼容使能引脚(EN)&#xff0c;此引脚允许可由用户定…

【MM小贴士】采购信息记录与工厂的相关性

【业务背景】在SAP的组织架构中&#xff0c;信息记录是一个非常重要的数据。这里面涉及到两个主数据&#xff1a;供应商主数据&物料主数据。 供应商主数据是一个集团性的主数据&#xff0c;无论哪个公司&#xff0c;哪个工厂&#xff0c;都用的同一个供应商代码&#xff0…

数仓开发之DWS层(二)

目录 五&#xff1a;用户域用户注册各窗口汇总表 5.1 主要任务 5.2 思路分析 5.3 图解 5.4 ClickHouse建表语句 六&#xff1a;交易域加购各窗口汇总表 6.1 主要任务 6.2 思路分析 6.3 图解 6.4 ClickHouse建表语句 七&#xff1a;交易域支付各窗口汇总表 7.1 主要任…

AppAnalytics设备的分析服务

AppAnalytics设备的分析服务 EmbarcaderoAppAnalytics是一项针对移动、桌面和可穿戴设备的分析服务。它允许您跟踪和测量应用程序的使用频率、运行的平台、客户使用的功能、查找和记录崩溃等。它通过从最终用户获取匿名使用统计数据&#xff0c;帮助您了解用户行为。AppAnalyti…

应届生如何做好一份简历?

找工作是痛苦的&#xff0c;尤其是投简历的过程。 下面分享下自己最近投简历的一些感悟。 一定要避免的错误 在投简历的过程中一定要避免如下几个主要错误&#xff1a; 一份简历打天下就当前的经济形势&#xff0c;我相信大多数人找工作都是海投&#xff0c;但是在海投的过程中…

靠这一份面试文档,我花了2个通宵看完,最终拿到阿里offer

Java基础部分 请你描述JDK、JRE、JVM的关系&#xff01;如果main方法被声明成private会怎样&#xff1f;&和&&的区别&#xff01;char型变量中能否存储一个中文汉字&#xff0c;why&#xff1f;a、a的区别&#xff01;ab、aab的区别&#xff01;浮点型计算为什么会…

Web(六)CSS3语法-CSS样式规则

第1关&#xff1a;CSS基础知识 第2关&#xff1a;初识CSS 编程要求 请在右侧编辑器中的Begin - End区域内补充代码&#xff0c;具体要求是&#xff1a; 1.按照要求的效果在标签中运用CSS样式&#xff0c;编辑唐诗“静夜思” 2.标题文本“静夜思”采用<h1>标签作用&am…

【前端】HTML认知

一、基础认知 1.1基础概念铺垫&#xff08;了解&#xff09; 1.1.1认识网页&#xff08;了解&#xff09; 问题1&#xff1a;网页由哪些部分组成&#xff1f; 文字、图片、音频、视频、超链接 问题2&#xff1a;我们看到的网页背后本质是什么&#xff1f; 前端程序员写的…

(02)Cartographer源码无死角解析-(29) LocalTrajectoryBuilder2D::AddRangeData()→多雷达数据时间同步

讲解关于slam一系列文章汇总链接:史上最全slam从零开始&#xff0c;针对于本栏目讲解(02)Cartographer源码无死角解析-链接如下: (02)Cartographer源码无死角解析- (00)目录_最新无死角讲解&#xff1a;https://blog.csdn.net/weixin_43013761/article/details/127350885 文末…