========================================================================
可以根据自身的项目需求,替换依赖。
| 技术名称 | 用途 |
| — | — |
| 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
- 创建完成是这个样子
======================================================================================
- 因为目前创建的是一个父工程所以要删除一些无用的文件,这里删除整个src就可以了。
- 删除无用的信息,并指定packaging为pom,正题效果如下图。
- 添加父工程依赖,这里的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
88
- 添加完了千万别忘记刷新maven,让他进行下载哦。
===========================================================================
- 这里分模块的方式有很多种,可以按照数据库的表分成对应的模块,也可以按照功能进行分,没有硬性的要求。
作用:每一个微服务公共的依赖,存放bean,工具类等。
- 创建子工程common,这里New的时候需要选择Module。
2. 指定jdk不用选择任何骨架
- 填写模块名称,GAV坐标,
注意检查Parent指向的是不是父工程
。
4.给common子工程添加对应的maven依赖。
每一个微服务公共的依赖,bean,工具类等
org.springframework.boot
spring-boot-starter-web
org.projectlombok
lombok
org.springframework
spring-jdbc
- 创建包,添加通用的工具类
最终效果
作用:bese是微服务的一个通用配置
- 创建子工程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. 创建包,添加通用配置类
作用:core是整个项目的核心模块,用于存放项目整个项目的核心业务
- 创建步骤,还是一样的。
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
- 因为是核心微服务,所以我们需要配置日志,和数据库等链接信息。
- 这里我们在
resources
目录下创建,application.yml
和logback-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,相关配置
wz
总结
面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。
我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
面试题及解析总结
大厂面试场景
知识点总结
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,相关配置
wz
总结
面试前的“练手”还是很重要的,所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。
我自己是刷了不少面试题的,所以在面试过程中才能够做到心中有数,基本上会清楚面试过程中会问到哪些知识点,高频题又有哪些,所以刷题是面试前期准备过程中非常重要的一点。
面试题及解析总结
[外链图片转存中…(img-EOOqjcBu-1721192157371)]
大厂面试场景
[外链图片转存中…(img-UADJP4Dx-1721192157372)]
知识点总结
[外链图片转存中…(img-m1Xt8mxC-1721192157372)]