SpringCloud Alibaba项目环境

news2024/9/23 19:26:40

前言

有小伙伴说自己搭建Spring Cloud项目时,总会出现很多问题,项目无法正常启动,就算启动成功了也会出现一些难以预料的异常。

项目无法正常启动或者项目搭建不起来的原因大多是各个组件间的依赖和版本问题,这里就提供一个可以正常运行的Spring Cloud环境,以及环境搭建过程中的各个组件之间的依赖。

开发环境

操作系统:win10
JDK版本:1.8
Maven:3.8.6
IDEA工具:2022.2.2
MySQL:5.7
Nacos:nacos-server-1.2.0
SpringBoot:2.1.8.RELEASE
spring-cloud:Greenwich.SR3
spring-cloud-alibaba-dependencies:2.1.0.RELEASE
mybatis-plus:3.2

项目目录结构

SpringCloud(父模块:删除没用的src目录)

  • common(子模块:每个微服务都依赖此模块)
  • coupon(子模块:优惠券服务)
  • member(子模块:会员服务)
  • gateway(子模块:API网管)
  • order(子模块:订单服务)
  • product(子模块:商品服务)

在这里插入图片描述

Spring Cloud(父模块:删除没用的src目录)依赖

<?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>cn.molu.cloud</groupId>
    <artifactId>SpringCloud</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>SpringCloud</name>
    <description>聚合服务</description>

    <modules>
        <module>member</module>
        <module>coupon</module>
        <module>order</module>
        <module>product</module>
        <module>ware</module>
        <module>common</module>
        <module>gateway</module>
    </modules>

    <properties>
    	<java.version>1.8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
</project>

common(子模块:每个微服务都依赖此模块)

<?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>

    <parent>
        <artifactId>SpringCloud</artifactId>
        <groupId>cn.molu.cloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <groupId>cn.molu.common</groupId>
    <artifactId>common</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>common</name>
    <description>每一个微服务公共的依赖,bean,工具类等</description>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.2.0</version>
        </dependency>

        <!--简化实体类,用@Data代替getset方法-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.8</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.14</version>
        </dependency>

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.16</version>
        </dependency>

        <!-- httpcomponent包。发送http请求 -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.13</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.11.0</version>
        </dependency>
        
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <!--注册中心服务发现-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>

        <!--Nacos做配置中心-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>

        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-loadbalancer</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <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>
</project>

coupon(子模块:优惠券服务)

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>cn.molu.coupon</groupId>
    <artifactId>coupon</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>coupon</name>
    <description>优惠券服务</description>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>cn.molu.common</groupId>
            <artifactId>common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

配置文件(application.yml)

spring:
  datasource:
    username: username
    password: password
    url: jdbc:mysql://127.0.0.1:3306/cloud?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
  #  配置nacos端口信息
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  # 为当前服务起名字,便于在nacos注册中心查看
  application:
    name: coupon
# 配置SQL的映射文件
mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  #  id自增
  global-config:
    db-config:
      id-type: auto
# 服务端口号
server:
  port: 7000

bootstrap.properties
依赖中引入了Nacos做配置中心的依赖,没有该配置文件项目启动时会抛出异常

# 配置服务的名称
spring.application.name=coupon
# nacos的地址和端口
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

member(子模块:会员服务)

<?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>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
        <relativePath/>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.molu.member</groupId>
    <artifactId>member</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>member</name>
    <description>会员服务</description>

    <properties>
        <java.version>1.8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring-cloud.version>Greenwich.SR3</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>cn.molu.common</groupId>
            <artifactId>common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

配置文件(application.yml)

#MySQL连接配置
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/cloud?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: username
    password: password
  #  Nacos配置
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
  application:
    name: member
# MyBatis—Plus配置
mybatis-plus:
  mapper-locations: classpath:/mapper/**/*.xml
  #  id自增
  global-config:
    db-config:
      id-type: auto
# 服务的端口配置
server:
  port: 8000

bootstrap.properties
依赖中引入了Nacos做配置中心的依赖,没有该配置文件项目启动时会抛出异常

# 配置服务的名称
spring.application.name=coupon
# nacos的地址和端口
spring.cloud.nacos.config.server-addr=127.0.0.1:8848

。。。。。。其他子模块依赖和配置也是一样,需要的其他依赖可以自行引入。。。。。。

注意:项目环境搭建时一定要注意各个组件之间的版本号问题,否则项目可能会出现一些意料外的错误信息。

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

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

相关文章

虹科HiveMQ MQTT解决方案在奔驰汽车制造中的应用

前言 戴姆勒股份公司&#xff08;Daimler AG&#xff09;&#xff0c;总部位于德国斯图加特&#xff0c;是全球最大的商用车制造商&#xff0c;全球第一大豪华车生产商、第二大卡车生产商。公司旗下包括梅赛德斯-奔驰汽车、梅赛德斯-奔驰轻型商用车、戴姆勒载重车和戴姆勒金融…

excel批处理:如何按给定目录批量创建系列文件夹

建立一个文件夹&#xff0c;小意思&#xff1b;建立十个文件夹&#xff0c;也很快完成&#xff1b;建立171个文件夹&#xff0c;这就是一项大工程了。如果不能批量创建的话&#xff0c;2个小时能完成就算不错了。收到领导的小要求&#xff0c;按照下面图片中的目录建立文件夹。…

基于SpringBoot的智慧社区网站

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7/8.0 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9 浏…

Spring Cloud Alibaba--gateway微服务详解之网关(二)

1、网关介绍 上篇对微服务中的nacos注册中心进行集成讲解。nacos主要作用是管理多服务之间复杂关系的组件。微服务是非常庞大且问题突出的架构&#xff0c;HTTP协议具有跨源资源共享 (CORS) Cross- Origin Resource Sharing机制&#xff0c;而处于安全考虑往往前端架构都会对跨…

Linux配置JDK

目录 第一步&#xff1a;下载JDK 第二步&#xff1a;上传jdk到服务器 第三步&#xff1a;解压并移动到指定目录 第四步&#xff1a;配置JAVA环境变量 配置所有用户 配置个别用户&#xff0c;以user1用户为例 第一步&#xff1a;下载JDK 自己下载jdk&#xff0c;网上下载或者…

云原生安全检测器 Narrows发布,在Harbor上增加容器安全的动态扫描

国内外的用户都在使用云原生技术来提高应用的开发效率和可管理性&#xff0c;不少用户运用开源 Harbor 制品仓库&#xff0c;管理敏捷软件供应链中云原生应用的镜像&#xff0c;包括镜像存储、镜像扫描和镜像签名等功能。 Harbor 已经提供了一些高级的安全功能&#xff0c;例如…

webshell免杀之函数与变量玩法

webshell免杀之函数与变量玩法 前言 前文列举了一些用符号免杀的例子&#xff0c;此篇文章就以函数和变量来尝试下免杀。 本文以PHP为例&#xff0c;用PHP中函数和变量及语法特性&#xff0c;在不隐藏函数关键字情况下进行免杀。 动态函数 PHP中支持一个功能叫 variable fu…

【Linux】-- 什么是多线程

目录 如何理解线程 Linux中线程概念的建立 Linux特有的方案 重新理解进程 总结 pthread 线程库 介绍 创建简易线程 - 加深理解 使用 总结 线程的优点 线程的缺点 如何理解线程 线程在进程内部执行&#xff0c;是操作系统调用的基本单位。 #问&#xff1a;什么是线程…

EdgeChrome浏览器暗模式设置

作为程序媛&#xff0c;希望所有的页面都是暗黑模式&#xff0c;重度强迫症患者。 1.## Edge浏览器暗黑模式设置 第一步&#xff1a; 打开Edge浏览器&#xff0c;点击界面右上角的三点图标。 第二步&#xff1a; 点击“设置” 第三步&#xff1a;点击&#xff0c;左侧界面的“…

【C++】string类(简介,接口,oj 包学包会)

&#x1f345;之前学习过类和对象&#xff0c;明确了C是面向对象编程&#xff0c;那不得不提常见对象——字符串 目录 ☃️1.基本介绍 ☃️2.string中金典常见接口 &#x1f41d;2.1 reserve()和resize()&#xff08;capacity()和size()&#xff09; &#x1f41d;2.2 迭…

深入浅出带你学习无参RCE

前言 无参RCE,顾名思义就是当我们不能传入参数的情况下进行命令执行&#xff0c;因为一般情况下命令执行必须是要含有参数的&#xff0c;本文会就着无参RCE问题带大家学习CTF中常见的无参RCE方式及用法&#xff0c;下面我们展开文章来讲解一下。 基础知识 首先我们要了解&am…

Revit剖面操作:怎么做折线剖面和快速剖面

一、Revit中如何做折线剖面 在绘图过程中&#xff0c;有时候根据实际情况需要绘制折线剖面&#xff0c;这里就简单介绍一些折线剖面的绘制方法。 1、选择视图选项卡中“剖面”绘制剖面&#xff0c;如图1所示。 2、选中“剖面”&#xff0c;点击右上角“拆分线段”&#xff0c;如…

ctf-show-misc-游戏题

目录前言Misc22超级玛丽魂斗罗游戏flag 终结篇加油各位( •̀ ω •́ )y 期待与君再相逢前言首先感谢ctf平台和出题的大佬其次感谢各位读者&#xff0c;对我的支持( •̀ ω •́ )y 有什么问题和建议可以私聊我本次出了一个专题&#xff0c;就是游戏专题 把所以关于游戏杂项的…

如何提高自动化测试覆盖率

自动化测试一直是测试人员的核心技能&#xff0c;也是测试的重要手段之一。尤其是在今年所谓的互联网寒冬的行情下&#xff0c;各大企业对测试人员的技术水平要求的很高&#xff0c;而测试人员的技术水平主要集中在三大自动化测试领域&#xff0c;再加测试辅助脚本的编写&#…

关于 DataLeap 中的 Notebook,你想知道的都在这

更多技术交流、求职机会&#xff0c;欢迎关注字节跳动数据平台微信公众号&#xff0c;回复【1】进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品&#xff0c;帮助用户快速完成数据集成、开发、运维、治、资产、安全等全套数据中台建设&#xff…

java-spring_bean实例化

bean是如何创建的实例化bean的三种方式构造方法静态工厂&#xff08;了解&#xff09;实例工厂与FactoryBean实例工厂FactoryBeanbean是如何创建的实例化bean的三种方式 构造方法 bean本质上就是对象&#xff0c;创建bean使用构造方法完成 提供可访问的构造方法 public clas…

现实版“狂飙”上演,背后有哪些猫腻?

目录 披着电商外衣行洗黑钱之实 电商平台如何防范黑灰产作恶 最近热播的电视剧《狂飙》中有这样一个故事情节&#xff0c;刑满释放的唐小虎出狱之后&#xff0c;大哥高启强就大方的赠予唐小虎一家游戏厅。但其表面上是游戏厅&#xff0c;实际上背后却暗藏赌场。而在后来的剧情…

<<Java开发环境配置>>5-MySQL安装教程(绿色版)

一.MySQL绿色版安装: 1.直接解压下载的ZIP文件到对应的目录下(切记安装目录不要有中文); 如图:我的安装目录:D:Program Files 2.创建配置文件: 在MySQL安装目录下&#xff0c;创建一个my.ini配置文件&#xff0c;然后在里面添加以下内容&#xff08;别忘了MySQL安装目录要改成…

基于单片机的温度控制系统设计(32+WIFI+蓝牙版)-实物设计

编号&#xff1a;M22033-04M设计简介&#xff1a;基础功能&#xff1a;1、可以通过温度传感器检测温湿度2、可以通过按键设置温度阈值3、当温度超过阈值时&#xff0c;蜂鸣器报警扩展功能&#xff1a;1、通过蓝牙连接手机并通过手机实现监控2、通过WiFi连接手机并通过手机实现监…

程序员一般通过什么途径接私活?

判断私活是否靠谱的通用标准&#xff1a; 1.钱款是否有担保&#xff0c;能做到“钱和代码两清” 2.项目是否真实&#xff0c;需求文档清晰&#xff0c;结款时间一目了然 3.项目来源是否可靠&#xff0c;渠道是否正规接私活的途径主要包括&#xff1a; 1.熟人/朋友介绍。这样的…