毕业设计无从下手?四个步骤手把手带你搭建一个后台微服务架构
Posted Cs 挽周
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了毕业设计无从下手?四个步骤手把手带你搭建一个后台微服务架构相关的知识,希望对你有一定的参考价值。
教程目录
后台技术栈
可以根据自身的项目需求,替换依赖。
技术名称 | 用途 |
---|---|
SpringBoot | 简化Spring |
SpringCloud Hoxton.SR8 | 微服务 |
Mybatis Plus | 持久层框架和代码生成器 |
Lombok | 简化实体类 |
Swagger2 | API接口文档生成工具 |
Logback | 日志系统 |
Alibaba-easyexcel | Excel读写 |
Redis | 缓存 |
HttpClient | 基于http协议的客户端用来实现远程的调用 |
Spring Task | 定时任务 |
mysql | 数据库 |
RabbitMQ | 消息中间件 |
准备工作
- 一个ide开发工具,这里使用的是 2020.2.4,掌握后台技术栈中的所有技术。
注意:开始之前要先设置jdk,maven,自动导包,编码格式,等相关信息。遵循 约定 > 编码
的规定,不会的可以点击访问: 首次安装必备!idea最常用设置(配置),让开发更顺手,进行设置。
一. 创建父工程
- 使用Maven骨架,选择
org.apache.maven.archetypes:maven-archetype-site
创建一个空的父工程,别忘了还要选择jdk哦!
- 添加工程名,GAV坐标。
3. 指定自已的Maven
- 创建完成是这个样子
二. 修改父工程pom文件添加相关依赖
- 因为目前创建的是一个父工程所以要删除一些无用的文件,这里删除整个src就可以了。
- 删除无用的信息,并指定packaging为pom,正题效果如下图。
- 添加父工程依赖,这里的cloud版本号特别重要容易冲突下面的依赖已经指定好相关版本了,直接复制即可。
<!-- 统一管理版本-->
<properties>
<java.version>1.8</java.version>
<spring-cloud-alibaba.version>2.2.2.RELEASE</spring-cloud-alibaba.version>
<spring-cloud.version>Hoxton.SR8</spring-cloud.version>
<mybatis-plus.version>3.4.1</mybatis-plus.version>
<velocity.version>2.0</velocity.version>
<swagger.version>2.9.2</swagger.version>
<swagger-bootstrap-ui.version>1.9.2</swagger-bootstrap-ui.version>
<commons-lang3.version>3.9</commons-lang3.version>
<commons-fileupload.version>1.3.1</commons-fileupload.version>
<commons-io.version>2.6</commons-io.version>
<alibaba.easyexcel.version>2.1.1</alibaba.easyexcel.version>
<apache.xmlbeans.version>3.1.0</apache.xmlbeans.version>
<fastjson.version>1.2.28</fastjson.version>
<gson.version>2.8.2</gson.version>
<json.version>20170516</json.version>
<aliyun-java-sdk-core.version>4.3.3</aliyun-java-sdk-core.version>
<aliyun-sdk-oss.version>3.10.2</aliyun-sdk-oss.version>
<jodatime.version>2.10.1</jodatime.version>
<jwt.version>0.7.0</jwt.version>
<httpclient.version>4.5.1</httpclient.version>
</properties>
<dependencyManagement>
<dependencies>
<!--spring boot 2.3.4.RELEASE-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.4.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring Cloud-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--Spring Cloud Alibaba-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!--mybatis-plus 代码生成器-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>${mybatis-plus.version}</version>
</dependency>
<!-- Mybatis Plus 代码生成器模板引擎, -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity-engine-core</artifactId>
<version>${velocity.version}</version>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!--swagger-bootstrap-ui-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>swagger-bootstrap-ui</artifactId>
<version>${swagger-bootstrap-ui.version}</version>
</dependency>
<!--commons-lang3-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<!--文件上传-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<!--commons-io-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<!--excel解析-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${alibaba.easyexcel.version}</version>
</dependency>
<!--excel解析依赖-->
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>${apache.xmlbeans.version}</version>
</dependency>
<!--json-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${json.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<!--阿里云SDK远程调用-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>${aliyun-java-sdk-core.version}</version>
</dependency>
<!--阿里云文件管理-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>${aliyun-sdk-oss.version}</version>
</dependency>
<!--日期时间工具-->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodatime.version}</version>
</dependency>
<!--jwt工具-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<!--httpclient-->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
- 添加完了千万别忘记刷新maven,让他进行下载哦。
三. 创建子工程
- 这里分模块的方式有很多种,可以按照数据库的表分成对应的模块,也可以按照功能进行分,没有硬性的要求。
1. 创建子工程common
作用:每一个微服务公共的依赖,存放bean,工具类等。
- 创建子工程common,这里New的时候需要选择Module。
2. 指定jdk不用选择任何骨架
- 填写模块名称,GAV坐标,
注意检查Parent指向的是不是父工程
。
4.给common子工程添加对应的maven依赖。
<description>每一个微服务公共的依赖,bean,工具类等</description>
<dependencies>
<!-- web起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--lombok用来简化实体类:需要安装lombok插件-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
</dependencies>
- 创建包,添加通用的工具类
最终效果
2. 创建子工程base
作用:bese是微服务的一个通用配置
- 创建子工程base,创建步骤和上面的common相同,创建成功后注意检查父工程pom中的标签。
2. 添加子工程base的相关依赖
<description>微服务通用配置</description>
<dependencies>
<!--引用 common 依赖-->
<dependency>
<groupId>com.wz.common</groupId>
<artifactId>wz-test-project-common</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<!--swagger ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<!-- spring boot redis缓存引入 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 缓存连接池-->
<dependency>
<groupId>org.apache.commons以上是关于毕业设计无从下手?四个步骤手把手带你搭建一个后台微服务架构的主要内容,如果未能解决你的问题,请参考以下文章
手把手带你搭建SpringCloud, 从公共模块搭建一套完整微服务架构