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


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

    项目架构

    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

    1 创建父工程 maven-micro-shop

    
    <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.0modelVersion>
    
        <groupId>per.mjngroupId>
        <artifactId>maven-micro-shopartifactId>
        <version>1.0.1version>
        <packaging>pompackaging>
        <modules>
            <module>user-servicemodule>
            <module>order-servicemodule>
            <module>common-servicemodule>
        modules>
    
        <properties>
            <spring.version>6.0.6spring.version>
            <jackson.version>2.15.0jackson.version>
            <shiro.version>1.10.1shiro.version>
            <io.version>2.11.0io.version>
            <maven.compiler.source>17maven.compiler.source>
            <maven.compiler.target>17maven.compiler.target>
            <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        properties>
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframeworkgroupId>
                    <artifactId>spring-contextartifactId>
                    <version>${spring.version}version>
                dependency>
                <dependency>
                    <groupId>com.fasterxml.jackson.coregroupId>
                    <artifactId>jackson-databindartifactId>
                    <version>${jackson.version}version>
                dependency>
                <dependency>
                    <groupId>org.apache.shirogroupId>
                    <artifactId>shiro-coreartifactId>
                    <version>${shiro.version}version>
                dependency>
                <dependency>
                    <groupId>commons-iogroupId>
                    <artifactId>commons-ioartifactId>
                    <version>${io.version}version>
                dependency>
                <dependency>
                    <groupId>per.mjngroupId>
                    <artifactId>common-serviceartifactId>
                    <version>1.0.1version>
                dependency>
            dependencies>
        dependencyManagement>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56

    2 创建通用模块 common-service

    
    <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.0modelVersion>
        <parent>
            <groupId>per.mjngroupId>
            <artifactId>maven-micro-shopartifactId>
            <version>1.0.1version>
        parent>
    
        <artifactId>common-serviceartifactId>
    
        <dependencies>
            <dependency>
                <groupId>commons-iogroupId>
                <artifactId>commons-ioartifactId>
            dependency>
        dependencies>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

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

    3 创建用户模块 user-service

    
    
    <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.0modelVersion>  
      <parent> 
        <groupId>per.mjngroupId>  
        <artifactId>maven-micro-shopartifactId>  
        <version>1.0.1version>
      parent>  
      <artifactId>user-serviceartifactId>
      <packaging>warpackaging>
    
      <dependencies>
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-contextartifactId>
        dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.coregroupId>
          <artifactId>jackson-databindartifactId>
        dependency>
    
        
        <dependency>
          <groupId>per.mjngroupId>
          <artifactId>common-serviceartifactId>
        dependency>
      dependencies>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    4 创建订单模块 order-service

    
    
    <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.0modelVersion>  
      <parent> 
        <groupId>per.mjngroupId>  
        <artifactId>maven-micro-shopartifactId>  
        <version>1.0.1version>
      parent>  
      <artifactId>order-serviceartifactId>
      <packaging>warpackaging>
    
      <dependencies>
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-contextartifactId>
        dependency>
        <dependency>
          <groupId>org.apache.shirogroupId>
          <artifactId>shiro-coreartifactId>
        dependency>
    
        
        <dependency>
          <groupId>per.mjngroupId>
          <artifactId>common-serviceartifactId>
        dependency>
      dependencies>
    project>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    C++入门——域作用符,命名空间的讲解
    简易版剪辑视频程序(python-VideoFileClip)
    【C++】类和对象 从入门到超神
    基于低代码开发平台为中小型企业打造OA系统
    【ROS2原理12】Python接口数据
    记一次 公司.NET项目部署在Linux环境压测时 内存暴涨分析
    Session会话追踪的实现机制
    Abnova丨Abnova GPCR单克隆抗体解决方案
    MySQL的MHA高可用集群部署、故障切换还原
    2023数维杯国际赛数学建模D题完整论文分享!
  • 原文地址:https://blog.csdn.net/weixin_43844521/article/details/137967483