在idea中搭建微服务项目(22版),详细教程

news2024/11/24 2:43:03

        1.创建新的项目

         2.创建的项目类型为SpringBoot

 

 

         选择创建后再选择新建项目

 

       

        3. 将新建的项目中不需要的东西都给删了,只留下pom文件即可

         修改pom文件的版本

  <version>2.1.6.RELEASE</version>

         导入所需要的jar包,将原来<dependencies>中的依赖覆盖掉

  <!--        SpringBoot启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!--     SpringBoot测试启动器-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- Web依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- 日志依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>
        <!-- Lombok工具 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
            <scope>provided</scope>
        </dependency>
        <!-- Actuator可以帮助你监控和管理Spring Boot应用 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <!-- 热部署 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency> 

        如果你的java版本比8高,还需要导入以下依赖

  <!-- 引入Jaxb开始 -->
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>2.2.11</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.2.10-b140310.1920</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- 引入Jaxb结束 -->

        导入微服务依赖的组件依赖

    <dependencyManagement>
        <dependencies>
            <!-- Spring Cloud Neflix 公司出品的微服务组件的依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Greenwich.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--Spring Cloud Alibaba微服务组件的依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>2.1.0.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

        4.创建存在实体类的微服务

        在这个微服务下的pom文件中导入所需要的依赖

<dependencies>
        <!-- mybatis-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.2</version>
        </dependency>
        <!-- pojo持久化使用 -->
        <dependency>
            <groupId>javax.persistence</groupId>
            <artifactId>javax.persistence-api</artifactId>
            <version>2.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

        创建实体类

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
    private Integer id;
    private String username;
    private String password;
}

         5.创建用于编写逻辑的微服务,步骤和上面的一样,将名字编写为: leq-server-product

               引入实体类微服务的地址

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>leq-server-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

        导入第二代微服务组件nacos所需要的依赖

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        创建启动类

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

@EnableDiscoveryClient
@SpringBootApplication
public class ProductApplication {
    public static void main(String[] args) {
        SpringApplication.run(ProductApplication.class,args);
    }
}

        编写配置文件,在resources创建application.properties文件

server.port=3000
spring.application.name=leq-server-product
spring.datasource.url=jdbc:mysql://localhost:3306/leq_pro?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=0216


spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

        6.创建业务访问的微服务,名字为: leq-server-page

                也是先导入实体类的项目的地址

    <dependencies>
        <dependency>
            <groupId>com.example</groupId>
            <artifactId>leq-server-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
    </dependencies>

             再导入以下依赖

        <!--nacos的客户端依赖-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- 引入alibaba-nacos-config依赖,可以从Nacos配置中心获得配置信息 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <!-- Sentinel核心环境依赖 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>

        创建page的启动类

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

@EnableFeignClients
@EnableDiscoveryClient
@SpringBootApplication
public class PageApplication {
    public static void main(String[] args) {
        SpringApplication.run(PageApplication.class,args);
    }
}

        编写配置文件,

        在resources创建application.properties文件

server.port=3100
spring.application.name=leq-server-page
spring.datasource.url=jdbc:mysql://localhost:3306/leq_pro?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=0216


spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

        到这里我们的微服务项目就算是搭建完成了,接下来进行测试

       没有安装nacos的小伙伴可以看这个链接安装nacos : 快速安装nacos

         1.先启动naco服务注册中心

http://10.48.185.7:8848/nacos/index.html

         访问该地址在浏览器可以看到该页面就证明服务注册中心启动了

        启动page和product两个微服务项目,然后刷新该地址,就可以看到我们的项目注册到服务中心了

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

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

相关文章

10 卷积网络 convolutional networks

卷积 如果将图片从 H ∗ W ∗ C H*W*C H∗W∗C 拉伸到 N ∗ 1 N*1 N∗1 的维度&#xff0c;而参数矩阵又是 N ∗ M N*M N∗M 的大小。N很大&#xff0c;M也很大。整个网络中的参数量会变得巨大。 卷积过程&#xff0c;使用一个filter 在整个图片上滑动。 当然输入的图象可…

普通人决策正确率如何提升

简洁回复&#xff1a;非常非常非常难&#xff0c;几乎不能。 举个简单例子&#xff1a; 高考报志愿&#xff0c;能走到高考这一步的并取得成绩的&#xff0c;从幼儿园到高中&#xff0c;3633&#xff0c;这个赛道奔跑了15年。 大部分人这里指的是考生自己&#xff0c;花费在填…

Unity LayerMask原理和判断包含关系

在本文之前&#xff0c;请先了解全部位操作的含义&#xff0c;否则继续下去会很困难。 本质&#xff1a;32位整数的每一位表示一个层 LayerMask本质上是一个32位的整数(Int32 ,int)&#xff0c;每个位代表一个图层&#xff0c;因此LayerMask最多可以表示32个图层&#xff08;0…

Vue3组件间的通信方式

目录 1.props父向子组件通信 2.自定义事件 子向父组件通信 3.全局事件总线 4.v-model组件通信&#xff08;父子组件数据同步&#xff09; 绑定单个数据同步 绑定多个数据同步 5.useAttrs组件通信 6.ref与$parent ref获取子组件实例对象 $parent获取父组件实例对象 7.p…

大采购,助力提升国有企业采购供应链管理水平

2023年7月11日-12日&#xff0c;由中国物流与采购联合会主办、北京筑龙承办的主题为“数智赋能创新发展”的“第四届国有企业数智化采购与智慧供应链论坛”在北京盛大举行。来自中央企业、地方国企采购与供应链部门相关负责人、业界专家、行业媒体代表等齐聚一堂、共襄盛会。北…

HCIP第十二天

题目 拓扑图 sw1、sw2、sw3分别创建VLAN、划分接口&#xff0c;配置干道 VLAN间路由 所有PC通过DHCP获取IP地址 PC1/3可以正常访问PC2/4/5/6

【学会动态规划】解码方法(4)

目录 动态规划怎么学&#xff1f; 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后&#xff1a; 动态规划怎么学&#xff1f; 学习一个算法没有捷径&#xff0c;更何况是学习动态规划&#xff0c; 跟我…

国内流行的数据可视化软件工具

在信息爆炸的时代&#xff0c;越来越多的数据堆积如山。但是&#xff0c;这些密集的数据没有重点且可读性较差。因此&#xff0c;我们需要数据可视化来帮助数据易于理解和接受。相比之下&#xff0c;可视化更直观、更有意义&#xff0c;使用适当的数据可视化工具来可视化数据非…

C++入门 - 1(几分钟让你快速入门C++)

c入门 1. C关键字(C98)2. 命名空间2.1 命名空间定义2.2 命名空间使用 3. C输入&输出4.缺省参数4.1 缺省参数概念4.2 缺省参数分类 5. 函数重载5.1 函数重载概念5.2 C支持函数重载的原理--名字修饰(name Mangling)提问&#xff1a;C语言中为什么没有函数重载呢&#xff1f; …

常见的网络拓扑结构,你都看懂吗

常见的网络拓扑结构有以下6种&#xff1a;1.总线型网络拓扑结构&#xff1b;2.星型网络拓扑结构&#xff1b;3.环形网络拓扑结构&#xff1b;4.树型网络拓扑结构&#xff1b;5.网状网络拓扑结构&#xff1b;6.混合网络型拓扑结构。其中&#xff0c;“总线型网络拓扑结构”是所有…

Redis学习(三)持久化机制、分布式缓存、多级缓存、Redis实战经验

文章目录 分布式缓存Redis持久化RDB持久化AOF持久化 Redis主从Redis数据同步原理全量同步增量同步 Redis哨兵哨兵的作用和原理sentinel&#xff08;哨兵&#xff09;的三个作用是什么&#xff1f;sentinel如何判断一个Redis实例是否健康&#xff1f;master出现故障后&#xff0…

QT中级(7)- 串口工具

QT中级&#xff08;7&#xff09;- 串口工具 1 串口通信的基础知识2 需要准备的工具3 Qt中的串口编程3.1 引入QSerialPort3.2 设置参数3.3 读取数据3.4 发送数据 4 源码 1 串口通信的基础知识 串行与并行&#xff1a;串口通信是一种串行通信方式。这意味着数据一位一位地通过通…

面试中关于自动化测试的认识

目录 一、什么是自动化测试&#xff0c;自动化测试的优势是什么&#xff1f; 二、什么样的项目比较适合做自动化测试&#xff0c;什么样的不适合做自动化测试&#xff1f; 三、在制定自动化测试计划的时候一般要考虑哪些点&#xff1f; 四、编写自动化脚本时的一些规范&…

02. 第一个Docker部署应用

目录 1、前言 2、Docker部署Nginx 3、修改镜像存储路径 3.1、默认存储路径 3.2、自定义存储路径 3.2.1、创建自定义的镜像存储路径 3.2.2、创建Docker守护进程的配置文件 3.2.3、重启docker服务 3.2.4、重新查看docker路径 4、配置镜像加速 4.1、配置阿里镜像加速器…

Unity 之 安卓平台上架隐私问题解决方案

Unity 之 助力游戏增长 -- 解决隐私问题 一&#xff0c;平台测试隐私问题二&#xff0c;解决方式一2.1 勾选自定义Mainifest2.2 修改自定义Mainifest2.3 隐私协议弹窗逻辑 三&#xff0c;解决方式二3.1 导出安卓工程3.2 创建上层Activity3.3 配置AndroidManifest 四&#xff0…

SOMEIP协议----第一节(概述)

SOMEIP协议 概述 1.什么是SOME/IP? SOME/IP: 如上图所述,连起来就是基于车载以太网技术的面向服务的可扩展中间件 汽车某ECU软件算法如果需要和其他ECU交互,大部分都通过跨ECU之间的服务来实现,即可以通过车载以太网异步调用其他ECU上的服务,应用开发者只需要关注服务…

携带时间戳主动写入数据到prometheus service

使用到的github公开项目 https://github.com/castai/promwrite 拉下来装依赖&#xff0c;然后使用 client_test.go t.Run(“write with custom options”, func(t *testing.T) 这个测试用例里面&#xff0c;删掉srv初始化的部分&#xff0c;这个是模拟一个客户端&#xff0c;直…

MySQL数据备份与恢复

目录 ​编辑 一、数据备份 1.1物理备份 1.1.1冷备份 1.1.2热备份 1.1.3温备份 二、逻辑分区 2.1完全分区 2.2差异分区 2.3增量备份 三、数据备份恢复实验 3.1做一个数据 3.2物理冷备份与恢复 3.3mysqldump 备份与恢复&#xff08;温备份&#xff09; 3.4Mysql数据…

mmdetection3.1.0 训练自己的数据集

目录 前言安装mmcv安装mmdetection验证安装数据集转为COCO划分训练集、验证集及测试集安装PaddlePaddle安装PaddleX划分数据集 修改对应文件修改coco.py重新安装修改模型文件 训练测试测试带真值的图像测试不带真值的图像批量测试 错误集锦ValueError: need at least one array…

设计模式 ~ 发布订阅者

发表订阅者模式 用于实现对象之间的松耦合通信&#xff1b; 在该模式中&#xff0c;存在一个或多个发布者&#xff08;Publishers&#xff09;和一个或多个订阅者&#xff08;Subscribers&#xff09;&#xff1b; 发布者负责发布消息&#xff0c;而订阅者负责订阅感兴趣的消息…