推送服务器集群系列(一)技术选型及项目基础框架搭建

1 篇文章 0 订阅
1 篇文章 0 订阅

博客涉及的相关软件仅供学习参考,不做任何商业用途以及无相关法律责任!如有不妥请联系QQ 3278688677 进行更正。

一、技术选型:本文将采用idea开发工具、SpringCloud框架模式、java语言与kotlin语言混编(根据项目实际情况采用自己喜欢的一种语言使用就好)集成socket.io推送以及rabbitmq来实现消息队列管理,前端可同时接入web网页、ios、Android等多个平台,实现前端主流的跨平台推送以及后台简易的推送服务集群。

二、spring cloud项目建立

1.打开idea新建项目

2.弹出框后选择spring Initializr并点击下一步

3.填写好包名 项目名选择项目编译架构体系,所用语言、打包格式、jdk版本、打包版本号格式、项目注释等点击下一步

4.这里最外层父类就简单的集成一个web service相关的maven包

5.填写好目录显示名和选择目录所在位置后直接点击完成

6.一般项目会配置自己的maven地址不用idea自带的maven,相关步骤如下:

7.一顿ok确定之后右下角会弹出如下框,点击import Changes

8.定义最外层项目为pom:在pom.xml文件中新增<packaging>pom</packaging>这句配置

9.在properties节点下添加kotlin语言配置:

<kotlin.version>1.3.31</kotlin.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>

10.在dependencies节点下新增依赖或者全部替换成以下配置

<!-- 加上这个才能辨认到log4j2.yml文件 -->
<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-yaml</artifactId>
</dependency>
<!--swagger  接口入参出参测试详细在线文档配置-->
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.7.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.7.0</version>
</dependency>
<!--网络二次请求包-->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>4.1.14</version>
</dependency>
<!-- 数据库驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.11</version>
</dependency>
<!--kotlin语言包-->
<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-stdlib</artifactId>
    <version>${kotlin.version}</version>
</dependency>
<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-reflect</artifactId>
</dependency>
<dependency>
    <groupId>org.jetbrains.kotlin</groupId>
    <artifactId>kotlin-stdlib-jdk8</artifactId>
</dependency>
<!-- json操作包 -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>
<!--springBoot通用包开始-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web-services</artifactId>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<!--springBoot通用包结束-->

11.调试优化目录结构和java与kotlin混编模式,这里不一一做解释直接覆盖

build节点就行:
<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
        <plugin>
            <groupId>org.jetbrains.kotlin</groupId>
            <artifactId>kotlin-maven-plugin</artifactId>
            <version>${kotlin.version}</version>
            <executions>
                <execution>
                    <id>compile</id>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    <configuration>
                        <sourceDirs>
                            <sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
                            <sourceDir>${project.basedir}/src/main/java</sourceDir>
                        </sourceDirs>
                    </configuration>
                </execution>
                <execution>
                    <id>test-compile</id>
                    <goals>
                        <goal>test-compile</goal>
                    </goals>
                    <configuration>
                        <sourceDirs>
                            <sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
                            <sourceDir>${project.basedir}/src/test/java</sourceDir>
                        </sourceDirs>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <executions>
                <!-- 替换会被 maven 特别处理的 default-compile -->
                <execution>
                    <id>default-compile</id>
                    <phase>none</phase>
                </execution>
                <!-- 替换会被 maven 特别处理的 default-testCompile -->
                <execution>
                    <id>default-testCompile</id>
                    <phase>none</phase>
                </execution>
                <execution>
                    <id>java-compile</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
                <execution>
                    <id>java-test-compile</id>
                    <phase>test-compile</phase>
                    <goals>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <sourceDirectory>${project.basedir}/src/main/java</sourceDirectory>
    <testSourceDirectory>${project.basedir}/src/test/java</testSourceDirectory>
</build>

12.粘贴完毕后重复7的步骤

13.新建项目子模块(项目右键 new  module)

14.我们先建立一个工具类模块,工具类独立于父类的springboot项目:重复 1、2、3、4、5、的步骤,如果工具model用kotlin语言开发那就再重复9、10、11、12的步骤

15.我们再建立一个实体类模块和13、14的步骤一样,在pom模块里加入自己欢的依赖包即可

16.新建一个公共业务模块,这次我们采用的是maven原始一点的构建方法

18.一顿下一步完成后在父pom文件中会看到如下自动加入的代码表示项目建立成功

19.然后在父pom中加入utils和common依赖

20.以general未例,springcloud的其他配置中心、注册中心、路由中心、熔断等模块都可以以同种方式法新建model,具体配置会在下一章节进行讲解,本文到此结束

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值