毕业设计无从下手?四个步骤手把手带你搭建一个后台微服务架构


后台技术栈

========================================================================

  • 可以根据自身的项目需求,替换依赖。

| 技术名称 | 用途 |

| — | — |

| 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最常用设置(配置),让开发更顺手,进行设置。


一. 创建父工程

===========================================================================

  1. 使用Maven骨架,选择org.apache.maven.archetypes:maven-archetype-site创建一个空的父工程,别忘了还要选择jdk哦!

在这里插入图片描述

  1. 添加工程名,GAV坐标。

在这里插入图片描述

3. 指定自已的Maven

在这里插入图片描述

  1. 创建完成是这个样子

在这里插入图片描述


二. 修改父工程pom文件添加相关依赖

======================================================================================

  1. 因为目前创建的是一个父工程所以要删除一些无用的文件,这里删除整个src就可以了。

在这里插入图片描述

  1. 删除无用的信息,并指定packaging为pom,正题效果如下图。

在这里插入图片描述

  1. 添加父工程依赖,这里的cloud版本号特别重要容易冲突下面的依赖已经指定好相关版本了,直接复制即可。

<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>

org.springframework.boot

spring-boot-dependencies

2.3.4.RELEASE

pom

import

org.springframework.cloud

spring-cloud-dependencies

${spring-cloud.version}

pom

import

com.alibaba.cloud

spring-cloud-alibaba-dependencies

${spring-cloud-alibaba.version}

pom

import

com.baomidou

mybatis-plus-boot-starter

${mybatis-plus.version}

com.baomidou

mybatis-plus-generator

${mybatis-plus.version}

org.apache.velocity

velocity-engine-core

${velocity.version}

io.springfox

springfox-swagger2

${swagger.version}

io.springfox

springfox-swagger-ui

${swagger.version}

com.github.xiaoymin

swagger-bootstrap-ui

${swagger-bootstrap-ui.version}

org.apache.commons

commons-lang3

${commons-lang3.version}

commons-fileupload

commons-fileupload

${commons-fileupload.version}

commons-io

commons-io

${commons-io.version}

com.alibaba

easyexcel

${alibaba.easyexcel.version}

org.apache.xmlbeans

xmlbeans

${apache.xmlbeans.version}

com.alibaba

fastjson

${fastjson.version}

org.json

json

${json.version}

com.google.code.gson

gson

${gson.version}

com.aliyun

aliyun-java-sdk-core

${aliyun-java-sdk-core.version}

com.aliyun.oss

aliyun-sdk-oss

${aliyun-sdk-oss.version}

joda-time

joda-time

${jodatime.version}

io.jsonwebtoken

jjwt

${jwt.version}

org.apache.httpcomponents

httpclient

${httpclient.version}

org.springframework.boot

spring-boot-starter-test

test

org.apache.maven.plugins

maven-compiler-plugin

8

8

  1. 添加完了千万别忘记刷新maven,让他进行下载哦。

在这里插入图片描述


三. 创建子工程

===========================================================================

  • 这里分模块的方式有很多种,可以按照数据库的表分成对应的模块,也可以按照功能进行分,没有硬性的要求。

1. 创建子工程common


作用:每一个微服务公共的依赖,存放bean,工具类等。

  1. 创建子工程common,这里New的时候需要选择Module。

在这里插入图片描述

2. 指定jdk不用选择任何骨架

在这里插入图片描述

  1. 填写模块名称,GAV坐标,注意检查Parent指向的是不是父工程

在这里插入图片描述

4.给common子工程添加对应的maven依赖。

每一个微服务公共的依赖,bean,工具类等

org.springframework.boot

spring-boot-starter-web

org.projectlombok

lombok

org.springframework

spring-jdbc

在这里插入图片描述

  1. 创建包,添加通用的工具类

在这里插入图片描述

在这里插入图片描述

最终效果

在这里插入图片描述

2. 创建子工程base


作用:bese是微服务的一个通用配置

  1. 创建子工程base,创建步骤和上面的common相同,创建成功后注意检查父工程pom中的标签

在这里插入图片描述在这里插入图片描述

2. 添加子工程base的相关依赖

微服务通用配置

com.wz.common

wz-test-project-common

1.0-SNAPSHOT

io.springfox

springfox-swagger2

io.springfox

springfox-swagger-ui

org.springframework.boot

spring-boot-starter-data-redis

org.apache.commons

commons-pool2

io.jsonwebtoken

jjwt

com.alibaba.cloud

spring-cloud-starter-alibaba-nacos-discovery

org.springframework.cloud

spring-cloud-starter-openfeign

com.alibaba.cloud

spring-cloud-starter-alibaba-sentinel

com.alibaba

fastjson

在这里插入图片描述3. 创建包,添加通用配置类

在这里插入图片描述

在这里插入图片描述

3. 创建子工程core


作用:core是整个项目的核心模块,用于存放项目整个项目的核心业务

  1. 创建步骤,还是一样的。

在这里插入图片描述

2.修改pom文件加入相关依赖

核心微服务模块

com.wz.common

wz-test-project-common

1.0-SNAPSHOT

mysql

mysql-connector-java

com.baomidou

mybatis-plus-boot-starter

com.baomidou

mybatis-plus-generator

org.apache.velocity

velocity-engine-core

com.alibaba

easyexcel

org.apache.xmlbeans

xmlbeans

org.springframework.boot

spring-boot-starter-data-redis

org.apache.commons

commons-pool2

com.fasterxml.jackson.core

jackson-databind

com.fasterxml.jackson.datatype

jackson-datatype-jsr310

src/main/java

**/*.properties

**/*.xml

false

在这里插入图片描述

  1. 因为是核心微服务,所以我们需要配置日志,和数据库等链接信息。
  • 这里我们在resources目录下创建,application.ymllogback-spring.xml配置文件,并编写相关的配置。

在这里插入图片描述

  • application.yml,相关配置

server:

port: 8110 #服务端口

spring:

profiles:

active: dev #环境设置

application:

name: 微服务名称 #服务名

datasource: #mysql数据库连接

type: com.zaxxer.hikari.HikariDataSource

driver-class-name: com.mysql.cj.jdbc.Driver

url: 链接数据库的url?serverTimezone=GMT%2B8&characterEncoding=utf-8

username: 用户名

password: 密码

#spring:

redis:

host: redes的ip地址

port: 端口号

database: 0

#password: 默认为空

timeout: 3000ms #过期时间

lettuce:

pool:

max-active: 20 #最大连接数,负值表示没有限制,默认8

max-wait: -1 #最大阻塞等待时间,负值表示没限制,默认-1

max-idle: 8 #最大空闲连接,默认8

min-idle: 0 #最小空闲连接,默认0

cloud:

nacos:

discovery:

server-addr: nacos的ip+端口 # nacos服务地址

mybatis-plus:

configuration:

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #配置控制台日志

mapper-locations: classpath:com/mzc/iou/core/mapper/xml/*.xml #防止xml文件丢失

##设置日志级别

#logging:

level:

root: ERROR

  • logback-spring.xml,相关配置
<?xml version="1.0" encoding="UTF-8"?>

wz

总结

面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。

我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

面试题及解析总结

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

大厂面试场景

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

知识点总结

三年Java开发,刚从美团、京东、阿里面试归来,分享个人面经

tuce:

pool:

max-active: 20 #最大连接数,负值表示没有限制,默认8

max-wait: -1 #最大阻塞等待时间,负值表示没限制,默认-1

max-idle: 8 #最大空闲连接,默认8

min-idle: 0 #最小空闲连接,默认0

cloud:

nacos:

discovery:

server-addr: nacos的ip+端口 # nacos服务地址

mybatis-plus:

configuration:

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #配置控制台日志

mapper-locations: classpath:com/mzc/iou/core/mapper/xml/*.xml #防止xml文件丢失

##设置日志级别

#logging:

level:

root: ERROR

  • logback-spring.xml,相关配置
<?xml version="1.0" encoding="UTF-8"?>

wz

总结

面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。

我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。

面试题及解析总结

[外链图片转存中…(img-EOOqjcBu-1721192157371)]

大厂面试场景

[外链图片转存中…(img-UADJP4Dx-1721192157372)]

知识点总结

[外链图片转存中…(img-m1Xt8mxC-1721192157372)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值