SpringCloud - 项目搭建

news2024/12/23 11:00:00

文章目录

    • 1.创建父工程项目
    • 2.父工程POM配置
    • 3.创建RestFul 服务器
      • 3.1 支付模块
        • 3.1.1 创建module
        • 3.1.2 改POM
        • 3.1.3 写YML
        • 3.1.4 主启动
        • 3.1.5 业务类
      • 3.2 订单模块
        • 3.2.1 创建module
        • 3.2.2 改POM
        • 3.2.3 写YML
        • 3.2.4 主启动
        • 3.2.5 业务类
    • 4.工程重构

1.创建父工程项目

  1. 打开IDEA 创建一个Maven项目:

在这里插入图片描述

  1. 配置好文件的编码:UTF-8

在这里插入图片描述

  1. 注解生效激活

在这里插入图片描述

  1. java编译版本配置:

在这里插入图片描述

  1. 忽略显示文件:

在这里插入图片描述

2.父工程POM配置

<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.jm.springcloud</groupId>
  <artifactId>cloud2022</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Maven</name>
  <url>http://maven.apache.org/</url>
  <inceptionYear>2001</inceptionYear>

  <distributionManagement>
    <site>
      <id>website</id>
      <url>scp://webhost.company.com/www/website</url>
    </site>
  </distributionManagement>

  <!-- 统一管理jar包版本 -->
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
    <junit.version>4.12</junit.version>
    <log4j.version>1.2.17</log4j.version>
    <lombok.version>1.16.18</lombok.version>
    <mysql.version>5.1.47</mysql.version>
    <druid.version>1.1.16</druid.version>
    <mybatis.spring.boot.version>1.3.0</mybatis.spring.boot.version>
  </properties>

  <!-- 子模块继承之后,提供作用:锁定版本+子modlue不用写groupId和version  -->
  <dependencyManagement>
    <dependencies>
      <!--spring boot 2.2.2-->
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.2.2.RELEASE</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!--spring cloud Hoxton.SR1-->
      <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-dependencies</artifactId>
        <version>Hoxton.SR1</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <!--spring cloud alibaba 2.1.0.RELEASE-->
      <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>
      <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
      </dependency>
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>${druid.version}</version>
      </dependency>
      <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>${mybatis.spring.boot.version}</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
        <optional>true</optional>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
          <fork>true</fork>
          <addResources>true</addResources>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

3.创建RestFul 服务器

创建两个微服务子模块,一个订单模块,一个支付模块

在这里插入图片描述

3.1 支付模块

3.1.1 创建module

创建第一个模块:支付模块

在这里插入图片描述

3.1.2 改POM

修改支付模块的POM文件

<?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>cloud2022</artifactId>
        <groupId>com.jm.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-provider-payment8001</artifactId>

    <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.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>
        <!--mysql-connector-java-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--jdbc-->
        <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>
    </dependencies>

</project>

3.1.3 写YML

server:
  port: 8001

spring:
  application:
    name: cloud-payment-service
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource          # 当前数据源操作类型
    driver-class-name: com.mysql.jdbc.Driver              # mysql驱动包
    url: jdbc:mysql://localhost:3306/cloud?useUnicode=true&characterEncoding=utf-8&useSSL=false
    username: root
    password: "021107"


mybatis:
  mapperLocations: classpath:mapper/*.xml
  type-aliases-package: com.jm.springcloud.entities    # 所有Entity别名类所在包

3.1.4 主启动

package com.jm.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

3.1.5 业务类

查看具体git:https://gitee.com/jm1107/cloud2022

3.2 订单模块

3.2.1 创建module

在这里插入图片描述

3.2.2 改POM

<?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>com.jm.springcloud</groupId>
        <artifactId>cloud2022</artifactId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-consumer-order80</artifactId>

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

</project>

3.2.3 写YML

server:
  port: 80

3.2.4 主启动

package com.jm.springcloud;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

3.2.5 业务类

查看具体git:https://gitee.com/jm1107/cloud2022

4.工程重构

问题:系统中存在重复部分

创建一个公共使用的子模块,将通用的实体类、工具类,以及第三方都存放到模块中

在这里插入图片描述

修改POM文件

<?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>cloud2022</artifactId>
        <groupId>com.jm.springcloud</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>cloud-api-commons</artifactId>

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


</project>

将公共的部分抽离到本模块中:
比如下面的实体类

在这里插入图片描述

使用maven对本子模块进行 install
在其他需要引入公共模块的子模块中maven 添加依赖包:

<dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
    <groupId>com.jm.springcloud</groupId>
    <artifactId>cloud-api-commons</artifactId>
    <version>${project.version}</version>
</dependency>

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

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

相关文章

从零开始的深度学习之旅(1)

目录0.前言1.单层神经网络1.1 单层神经网络基础(线性回归算法)1.2 torch.nn.Linear实现单层回归神经网络的正向传播2.二分类神经网络&#xff1a;逻辑回归2.1 逻辑回归与门代码实现2.2 符号函数2.2.1 sign函数2.2.2 Relu函数2.2.3 tant函数3. 多分类神经网络&#xff1a;Softma…

Vue:实战快速上手

采用实战模式并结合ElementUI 组件库&#xff0c;将所需知识点应用到实际中&#xff0c;以最快速度掌握Vue的使用; 桌面化应用 ElementUI: https://element.eleme.cn/#/zh-CN/ 弹窗 LayUI 的 layer &#xff08;由于官网已下架&#xff0c;在此使用镜像): https://www.layui.s…

【网页设计】基于HTML在线图书商城购物项目设计与实现_(图书商城10页) bootstarp响应式

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 在线商城购物 | 水果商城 | 商城系统建设 | 多平台移动商城 | H5微商城购物商城项目 | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 HTML&a…

[附源码]java毕业设计停车场信息管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

抢购软件使用方法(如何开发抢购软件)

如果做抢购软件的话需要好的协议以及算法&#xff0c;我用的这份协议目前非常稳定&#xff0c;所以今天给大家讲解下抢购软件的流程以及使用方法 01软件设置选项详解 一、无障碍服务 二、使用网路时间 软件第一行一般都是当前设备比XX慢了&#xff08;快了&#xff09;XXms&…

Vue3铺垫知识【ES6 模块化、Promise、async/await、EventLoop、宏任务和微任务、总结】

文章目录ES6 模块化1. 回顾&#xff1a;node.js 中如何实现模块化2. 前端模块化规范的分类3. 什么是 ES6 模块化规范4. 在 node.js 中体验 ES6 模块化5. ES6 模块化的基本语法5.15.1.1 默认导出5.1.2 默认导入5.1.3 默认导出的注意事项5.1.4 默认导入的注意事项5.25.2.1 按需导…

Python:Linux下安装Anaconda,可多人使用(内容几乎完整)

前言 前言属于与内容无关的写作意图。要看正文&#xff0c;请直接跳转至本文主要内容。 很久不见。最近手里有很多事&#xff0c;比如&#xff0c;体检、装机、加班。再加上我现在为了速记&#xff0c;会把东西记到跨平台的笔记软件“OneNote”&#xff08;大画板&#xff0c…

尚医通 (二十六) --------- 科室接口开发

目录一、上传科室接口1. 添加科室基础类2. 上传科室二、查询科室接口三、删除科室接口一、上传科室接口 1. 添加科室基础类 A、添加 model 说明&#xff1a;由于实体对象没有逻辑&#xff0c;我们已经统一导入 com.fancy.yygh.model.hosp.Department B、添加 repository 添…

多元正态分布

最广为使用的基于模型的聚类方法依赖于多元正态分布。多元正态分布是对p个变量正态分布的一种推广。该分布使用一组均值和协方差矩阵∑定义。协方差矩阵是变量间相关性的度量. 协方差矩阵∑由p个方差以及所有变量对的协方差σi,ji≠j&#xff09;构成。矩阵的行和列均用变量表…

闲活一:一步登天

标题不希望能被人搜到&#xff0c;因为目前没有任何技术含量&#xff0c;可行性也偏低&#xff0c;纯纯的预研阶段。 项目起步阶段是最无从下手的阶段&#xff0c;还是先明确大目标。我这个赛车要做什么&#xff0c;怎样去做。 做什么 我脑中蹦出的大方向是这样的 玩家体…

初识Matter协议

初识Matter协议什么是MatterMatter有什么用Matter的核心优势Matter网络的组网方式什么是Matter Matter的概念最初在2019年12月被提出&#xff0c;当时被称为CHIP(Connected Home Over IP)&#xff0c;之后在2021年5月作为全新的连接标准被正式提出。 CHIP是由AWS、Google、App…

1. 算法简介

1.2 二分查找 二分查找是一种算法&#xff0c;其输入是一个有序的元素列表。如果要查找的元素包含在列表中&#xff0c;二分查找返回其位置; 否则返回null 。 使用二分查找时&#xff0c;最多需要检查log n 个元素。 仅当列表是有序的时候&#xff0c;二分查找才管用。 完整…

XCTF1-web php

场景一&#xff1a;simple_php 题目描述 小宁听说php是最好的语言,于是她简单学习之后写了几行php代码。 进入场景 给了php代码&#xff0c;分析一下 GET传入两个参数a,b aaa_GET[“a”];其中的是为了防止没有$_GET[‘a’]出现错误提示 $a0 and a&#xff1a;a等于0,且a是…

Spring之Bean生命周期之二--- Instantiation阶段

在BeanFactory中&#xff0c;主要的流程就是创建Bean的过程&#xff0c; // 核心方法: 创建Bean实列对象,并且生命周期的动作大部分都在这里。Object beanInstance doCreateBean(beanName, mbdToUse, args);Bean的生命周期包括: 实例化设置属性值初始化值销毁 实例化Bean在…

[附源码]java毕业设计网上报销管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

西电计网ARP欺骗实验

ARP欺骗实验 文章目录ARP欺骗实验Cloud云设备连接本机网卡ARP欺骗实验Cain基本设置主机发现ARP欺骗的原理实现Cain干了啥DNS欺骗实验Cain干了啥欺骗转发实验Cloud云设备 想查一下华为官方使用手册,看看云到底是个啥,但是查不到. 在ensp模拟器中云设备这篇博客上这样写的: eNS…

基于K-means(K均值)聚类算法的图像特征分割研究-含Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、K-means 聚类算法原理✳️ 三、图像聚类分割实例✳️ 四、参考文献✳️ 五、Matlab代码获取✳️ 一、引言 图像分割是一个跨学科的研究方向&#xff0c;涉及人工智能、机器学习、模式识别等。随着计算机技术的不断发展&#xff0c;图像分…

java毕业设计——基于java+Socket+sqlserver的网络通信系统设计与实现(毕业论文+程序源码)——网络通信系统

基于javaSocketsqlserver的网络通信系统设计与实现&#xff08;毕业论文程序源码&#xff09; 大家好&#xff0c;今天给大家介绍基于javaSocketsqlserver的网络通信系统设计与实现&#xff0c;文章末尾附有本毕业设计的论文和源码下载地址哦。 文章目录&#xff1a; 基于jav…

2022-11-20 每日打卡:Leetcode第 320 场周赛

2022-11-20 每日打卡&#xff1a;Leetcode第 320 场周赛 题解主要参考&#xff1a;https://www.bilibili.com/video/BV1A3411f7H3/?spm_id_from333.999.0.0&vd_source6fcf135348bf11256bcd756a96851533 6241. 数组中不等三元组的数目 对于排列组合问题&#xff0c;关注“…

实现微服务:匹配系统(中)

目录 1、同步两个玩家的位置思路解析 2、实现了三个棋盘的同步原理 3、初始化一下我们的playerAplayerB 4、什么是线程为什么要用多线程&#xff1f; 5、如何去实现等待两名玩家输入 6、前端向后端发消息 7、在数据库中创建表record 1、同步两个玩家的位置思路解析 除了地…