HRM项目总结

HRM项目总结(Day01-Day11)

一、HRM_Day01_搭建微服务

1.项目原型

前端:elementui+div+css

后端:使用微服务(springCloud)+SSM,mybatis-plus

2.项目架构分析(重点)

使用技术分析:

​ MySQL:用于存储数据

​ redis:用于存放缓存

​ FastDFS:分布式文件系统

​ elasticsearch:全文检索

​ Feign/Hystrix:用于服务之间的调用和熔断操作

​ SpringCloudCofig:存放所有服务的配置文件

​ Erueka:注册中心,存放所有的服务

​ Gitee:远端仓库,配置中心到仓库拉取文件

​ Zuul网关:配置路由,通过路由访问

​ nginx:反向代理,通过虚拟ip调用不同的主机(虚拟)

3.系统中心后台微服务搭建(重点)
3.1.集成ssm

使用mybatis-plus+spring+springmvc集成

主要项目结构:

​ parent=>interface(domain、query、clien、clienImpl)、service(Mapper.java、service、controller、mapper.xml)

3.2.配置网关

网关配置文件设置路由:

zuul:
  prefix: /services
  ignored-services: '*'
  routes:
    system:
      path: /system/**
      service-id: system-service
3.3.集成swagger

导入swagger的相关依赖,直接copy项目需要使用的Swagger2Configuration类

**测试:**localhost:端口/swagger-ui.html

**注意:**Swagger2Configuration类需要注解@Configuration、@EnableSwagger2

4.mybatis-plus入门(重点)
4.1入门

https://mp.baomidou.com/ 参考官网

4.2核心

1.提供crud基本接口,只能对单表操作,多表需要自己写sql

2.分页提供一个bean,分页插件

3.在mapper中进行分页,方法第一个参数必须是Page

4.提供条件构造器,使用QueryWrapper

5.代码生成器,cv自己会改就ok

二、HRM_Day02_搭建课程服务

1.gitee仓库搭建(重点)

创建gitee仓库,idea与仓库创建连接,pull后再拉取

**常见错误:**Push to origin/master was rejected

**解决方法:**打开项目的根目录,右击选择Git Bash here,依次输入以下命令

    git pull
    git pull origin master
    git pull origin master --allow-unrelated-histories
2.配置中心搭建(重点)
2.1.单机版

1.创建gitee仓库

2.创建配置中心服务端

3.编写配置中心配置文件,配置远程拉取的地址

4.启动类添加配置中心的注解@EnableConfigServer

4.上传服务配置文件到Gitee仓库

2.2.集群版

复制单机版的配置中心,改个端口,注册到同一个服务下,其他客户端可以直接任意拉取二者之一

3.抽取swagger

1.设置配置文件META-INF/spring.factories

2.添加自动配置类EnableAutoConfiguration=XXXAutoConfiguration

3.编写XXXProperties配置文件

4.其他服务使用可以直接导入swagger抽取后的场景启动器依赖后使用

4.代码生成器

copy自己能看懂一点点即可

5.搭建前端项目(重点)

1.禁用mock

2.安装axios

3.解决跨域问题

4.设置统一跨域处理(copy)

5.设置仓库,提交到gitee

6.搭建课程中心后台(重点)

1.搭建课程中心客户端

2.集成ssm+mybatis-plus

3.bootstrap.yml设置配置文件,通过配置中心拉取配置文件

4.引入swagger

5.配置网关路由

三、HRM_Day03_租户实现

1.数据隔离

1.给每个租户提供一套数据库

2.不同租户存放到不同的表中

3.通过租户id在一张表进行区分(推荐)

2.权限分配

基于RBAC实现权限的控制,主要表为用户、角色、权限、套餐、租户,权限跟套餐绑定,租户购买套餐,租户下的用户只能分配套餐中对应的权限

3.建库建表

copy即可

4.后端注册租户实现

略,参考代码

5.前端实现

copy即可

6.分布式文件系统(重要)
6.1.为什么使用分布式文件系统

微服务中,集群环境下,文件上传到服务器中,后面客户端访问不一定能拿到数据,所有需要分布式文件系统来存放文件,方便每个客户端都能拿到想要的数据

6.2.技术选型

FastDFS

6.3.fastdfs的概述

Tracker Server:调度服务器,负责均衡,调度可用的Storage Server(存储服务器)

Storage Server:存储服务器,专们用来存储文件的

7.使用fastdfs完成logo上传

1.创建文件系统的服务端

2.导入相关依赖

3.配置bootstrap.yml,从配置中心拉配置

4.网关配置文件系统的路由

5.配置swagger

6.提供文件上传接口

四、HRM_Day04_课程类型维护

1.修改前端页面

1.修改展示后台的基本信息,如标题

2.修改菜单的选项

3.添加课程类型的路由

2.课程类型维护
2.1.布局

略,参考代码与界面

2.2.后端实现(查询)

实现方式:

​ 1.使用递归

​ 2.使用嵌套循环

​ 3.使用循环+map(推荐,效率高于前者)

3.课程类型优化
3.1.为何要优化

由于课程类型需要长期被查询,用的是微服务,为了避免数据库高并发,所以使用redis存储缓存,解决高并发导致数据库奔溃,从而也减少了数据库的压力

3.2.优化方案

使用redis服务器,将缓存集中进行存放,并且redis本身也可以集群

4.项目使用redis

1.搭建缓存服务

2.导入相关依赖

3.提供缓存实现接口

4.编写缓存的controller

5.提供Feign接口,便于课程类型服务来使用

五、HRM_Day05_课程维护

1.课程前台

copy即可

2.后台维护属性

基本属性:后台管理员对课程基本信息进行查看与修改

市场属性:后台管理员对市场的基本信息进行查看与修改

媒体属性:后台管理员对媒体的基本信息进行查看与修改,如查看产品图片等

页面设计:提供高级查询、上线与下线、对课程的添加

3.建库建表

copy即可

4.代码生成

略,稍微搞一下生成的表与生成的路径即可

5.课程信息维护
5.1.分页高级查询

使用mybatis-plus,在mapper中使用高级查询,只需要把第一个参数设置为Page即可

5.2.富文本编辑

使用vue-quill-editor实现富文本编辑器,参考网址安装与使用https://www.npmjs.c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值