书接上文->手写MQ框架(一)-准备启程
本着从无到有,从有到优的原则,所以计划先通过web实现功能,然后再优化改写为socket的形式。
1、关于技术选型
web框架使用了之前写的gmvc框架(手写MVC框架(一)-再出发),消息存储采用存在数据库的方式,使用的框架也是前段时间写的gdao(手写DAO框架(一)-从“1”开始 )。
2、项目搭建
项目本来是单项目的形式,但是考虑到将服务端、客户端分开不是很友好,所以采用了maven父子模块的形式。
其中,父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/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.shuimutong</groupId> <artifactId>gmq</artifactId> <version>${global.version}</version> <packaging>pom</packaging> <url>http://maven.apache.org</url> <modules> <module>gmq-server</module> <module>gmq-client</module> </modules> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <global.version>0.0.1-SNAPSHOT</global.version> <fastjson.version>1.2.60</fastjson.version> <gdao.version>2.0.0-SNAPSHOT</gdao.version> <gmvc.version>1.0.1-SNAPSHOT</gmvc.version> <gutil.version>0.0.2-SNAPSHOT</gutil.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>me.lovegao</groupId> <artifactId>gdao</artifactId> <version>${gdao.version}</version> </dependency> <dependency> <groupId>com.shuimutong</groupId> <artifactId>gmvc</artifactId> <version>${gmvc.version}</version> </dependency> <dependency> <groupId>com.shuimutong</groupId> <artifactId>gutil</artifactId> <version>${gutil.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.2</version> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <target>1.8</target> <source>1.8</source> </configuration> </plugin> </plugins> </build> </project>