本文为开发railway项目做好铺垫。

基础项目架构

该项目是基于spring cloud alibaba的微服务架构,所以要创建多模块开发。

首先创建一个普通的maven项目,取名railway。注意,本项目基于jdk17。删除src文件夹,创建如下的目录结构。

├─railway-dependencies               
├─railway-framework                  
├─railway-service
└─resources
    ├─data
    └─db

dependencies用来管理整个项目的依赖。

framwork的代码结合了spring boot starter的思想,提供了开箱即用的组件库,见动手写starter

service中存放各个模块的业务代码。

resources存放用到的资源。

dependencies

通过dependencies来进行项目依赖版本的管理,通过type和scope属性,将spring boot常用的依赖版本规定起来。

<?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>com.zzys</groupId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>
    <artifactId>railway-dependencies</artifactId>

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

在父pom中:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
    </dependency>
</dependencies>
<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.zzys</groupId>
                <artifactId>railway-dependencies</artifactId>
                <version>0.0.1-SNAPSHOT</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

使用dependencyManagement管理来源于trailway-dependencies的依赖,并引入常见的公共依赖。

数据库

本项目采用分库分表的思想,具体的分库分表规则在后面一点一点跟随业务代码叙述。

前端

本项目以后端为主,前端代码直接使用console-vue · nageofferopen in new window的前端代码。

上次更新:
Contributors: YangZhang