本文为开发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 · nageoffer的前端代码。