Maven实战—搭建微服务 Maven 工程架构

embedded/2024/10/18 18:21:17/

需求案例:搭建一个电商平台项目,该平台包括用户服务、订单服务、通用工具模块等。

项目架构

  1. 用户服务:负责处理用户相关的逻辑,例如用户信息的管理、用户注册、登录等。
  2. 订单服务:负责处理订单相关的逻辑,例如订单的创建、订单支付、退货、订单查看等。
  3. 通用模块:负责存储其他服务需要通用工具类,其他服务依赖此模块。

服务依赖

  1. 用户服务 (1.0.1)
    • spring-context 6.0.6
    • spring-core 6.0.6
    • spring-beans 6.0.6
    • jackson-databind / jackson-core / jackson-annotations 2.15.0
  2. 订单服务 (1.0.1)
    1. shiro-core 1.10.1
    2. spring-context 6.0.6
    3. spring-core 6.0.6
    4. spring-beans 6.0.6
  3. 通用模块 (1.0.1)
    1. commons-io 2.11.0

mavenmicroshop_23">1 创建父工程 maven-micro-shop

<?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>per.mjn</groupId><artifactId>maven-micro-shop</artifactId><version>1.0.1</version><packaging>pom</packaging><modules><module>user-service</module><module>order-service</module><module>common-service</module></modules><properties><spring.version>6.0.6</spring.version><jackson.version>2.15.0</jackson.version><shiro.version>1.10.1</shiro.version><io.version>2.11.0</io.version><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>${shiro.version}</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>${io.version}</version></dependency><dependency><groupId>per.mjn</groupId><artifactId>common-service</artifactId><version>1.0.1</version></dependency></dependencies></dependencyManagement>
</project>

2 创建通用模块 common-service

<?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>per.mjn</groupId><artifactId>maven-micro-shop</artifactId><version>1.0.1</version></parent><artifactId>common-service</artifactId><dependencies><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId></dependency></dependencies>
</project>

使用maven中的构建命令install,将这个项目放到maven本地仓库,以供其他两个模块(user-service 和 order-service)使用。
在这里插入图片描述
显示出BUILD SUCCESS表示构建成功。
在这里插入图片描述

3 创建用户模块 user-service

<?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>per.mjn</groupId>  <artifactId>maven-micro-shop</artifactId>  <version>1.0.1</version></parent>  <artifactId>user-service</artifactId><packaging>war</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency><!-- 引入自己的工程 --><dependency><groupId>per.mjn</groupId><artifactId>common-service</artifactId></dependency></dependencies>
</project>

4 创建订单模块 order-service

<?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>per.mjn</groupId>  <artifactId>maven-micro-shop</artifactId>  <version>1.0.1</version></parent>  <artifactId>order-service</artifactId><packaging>war</packaging><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId></dependency><!-- 引入自己的工程 --><dependency><groupId>per.mjn</groupId><artifactId>common-service</artifactId></dependency></dependencies>
</project>

http://www.ppmy.cn/embedded/16940.html

相关文章

华为P系列“砍了”,三角美学系列全新登场

2021 年 10 月&#xff0c;Intel 正式带来了颠覆以往的第 12 代酷睿「混合架构」 CPU。 不知道是良心发现还是为了弥补 11 代酷睿过于拉胯表现&#xff0c;Intel 终于把狠活儿都用在了这代。 全新 Intel 7 工艺、全新架构、单核与多核性能大幅提升&#xff0c;让大家十分默契…

Android Studio实现内容丰富的安卓养老平台

获取源码请点击文章末尾QQ名片联系&#xff0c;源码不免费&#xff0c;尊重创作&#xff0c;尊重劳动 158安卓养老 1.开发环境 后端用springboot框架&#xff0c;安卓的用android studio开发android stuido3.6 jak1.8 idea mysql tomcat 2.功能介绍 安卓端&#xff1a; 1.注册登…

React 之 函数式组件(二)

React的函数式组件是React组件的一种形式&#xff0c;它使用JavaScript函数而不是类来定义组件。这种组件形式在React 16.8版本引入Hooks之后变得特别流行&#xff0c;因为它使得组件逻辑更加简洁、易于理解和测试。 import React from react; function Welcome(props) { //…

HttpURLConnection 接收长字符串时出现中文乱码出现问号��

HttpURLConnection 接收长字符串的时候随机位置出现中文乱码&#xff0c;显示问号&#xff0c;究其原因是utf8解码长度问题&#xff0c;程序上写法需要注意&#xff0c;要把字节全部读进来一起转码&#xff0c;不能边读取边转码&#xff0c;会截断中文的字节码&#xff0c;导致…

水仙花数-第12届蓝桥杯省赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第56讲。 水仙花数&#xf…

【人工智能基础】机器学习

一、机器学习概念 机器学习是从示例中学习的方法。我们不需要编写分类的规则&#xff0c;而是通过提供大量的相关数据来训练它们 机器学习分类 有监督学习 假设有可用的训练数据&#xff0c;每个样本都有类别标注&#xff0c;分类器是通过利用这些先验已知信息而设计的 无…

2024/4/22(分布式服务事务,CAP,BASE理论,Seata,微服务集成Seata,XA,AT,TCC.Saga,TC高可用,异地容灾)

配置内容如下&#xff1a;properties # 数据存储方式&#xff0c;db代表数据库 store.modedb store.db.datasourcedruid store.db.dbTypemysql store.db.driverClassNamecom.mysql.jdbc.Driver store.db.urljdbc:mysql://127.0.0.1:3306/seata?useUnicodetrue&rewriteBatc…

C语言——指针进阶

此文章对于我之前的文章《C语言——指针-CSDN博客》进行补充&#xff0c;以及记录一些新知识。 一、字符指针 1、字符指针与字符串 #include <stdio.h>int main() {char* p "abcdef";printf("%s", p);return 0; } 对于字符指针&#xff0c;实际…