博客涉及的相关软件仅供学习参考,不做任何商业用途以及无相关法律责任!如有不妥请联系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,具体配置会在下一章节进行讲解,本文到此结束