Day1
MP的学习:
MybatisPlus本身就是mybatis,它对mybatis做了增强,让它的操作更加简单,更加方便。
1.CRUD操作 :添加、修改、物理删除、逻辑删除、简单查询、分页查询、条件查询
2.MP自动填充功能(添加和修改时自动填充上对应的时间
3.MP乐观锁:
主要适用场景:当要更新一条记录的时候,希望这条记录没有被别人更新,也就是说实现线程安全的数据更新。
执行操作时,比较当前修改数据版本version和数据库版本是否一样,如果一样才进行提交,提交之后把数据库版本号做更新。
MP简化流程:
mapper层或dao层直接继承BaseMapper<实体类>,
service层继承IService<实体类>,
service实现类继承ServiceImpl<mapper层或dao层类名,实体类>然后实现service层。
使用MD5进行加密,需要先导入MD5工具类,然后直接调用MD5.encrypt方法进行加密
使用Logback技术能把日志输出到硬盘的某个文件当中,将logback的xml文件放到resource目录即可使用。
nodejs的作用:
1.JavaScript运行环境
2.模拟服务端效果
NPM:是Node.js的包管理工具,相当于前端的Maven。
安装npm.npm不需要单独安装,安装完成nodejs之后自动安装上,2.项目初始化操作使用命令npm init,初始化完成后会生成package.json文件。3.下载依赖测试,使用npm install 依赖名称
Day2:
Webpack:是一个前端资源加载/打包工具,可以将多种静态资源js、css转换成一个静态文件。
数据字典:数据字典就是管理系统常用的分类数据或者一些固定数据,例如:省、市、区三级联动数据、民族数据等
EasyExcel: 是一个基于java的简单、省内存的读写Excel的开源项目。
Day3:
缓存
适合做缓存:不经常修改数据,固定的数据,经常查询数据。
Spring Cache是一个非常优秀的缓存组件,提供基本的Cache抽象,方便切换各种底层Cache(如:redis)
@Cacheable
根据方法对其返回结果进行缓存,下次请求时,如果缓存存在,则直接读取缓存数据返回;如果缓存不存在,则执行方法,并把返回的结果存入缓存中。
本系统把数据字典数据(省份、医院等级)存入缓存中。
Nginx:
![](https://img-blog.csdnimg.cn/img_convert/b0302386bbc08bf18dcc45a0ba1210d9.png)
MongoDB:
NoSQL简介:
![](https://img-blog.csdnimg.cn/img_convert/c6536c307a754c8a334f5af68a17f7b6.png)
下表将帮助您更容易理解Mong中的一些概念
![](https://img-blog.csdnimg.cn/img_convert/c73d6e7a3eb41d4c08df79eddae78f97.png)
MongoDB文档:
![](https://img-blog.csdnimg.cn/img_convert/31a0306b0e8b03a5fa38796dd3ef2ce3.png)
MongoDB适用场合:
![](https://img-blog.csdnimg.cn/img_convert/c1c07f49d2334a62c54d2adb9fe1598c.png)
不适用场合:
![](https://img-blog.csdnimg.cn/img_convert/7ea489c5ad97ecc6cdecc9be17173964.png)
两种在idea操作mongo的方法:
基于MongoTemplate开发CRUD
Spring Data提供了对mongodb数据访问的支持,只需要写一个接口继承MongoRepository类,这种方法写CRUD更简单,按照Spring Data规范就可以。
本系统把医院信息放入mongo中(包括医院信息、科室信息、排班信息等)
Day4
Feign:
![](https://img-blog.csdnimg.cn/img_convert/25f7e78122847f75da4598b6ee65e227.png)
@FeignClient()里面参数调用谁就写谁
然后里面的方法是把被调用者controller里面的方法复制过来,不用复制方法体,然后补全路径。
本系统通过service-hosp远程调用service-cmn模块得到数据字典的相关数据,获取医院等级信息,使医院列表包含医院等级信息。
Day5
网关:
跨域的产生原因:
访问协议、ip地址、端口号 有任何一个不一样都会产生跨域问题。
![](https://img-blog.csdnimg.cn/img_convert/f4047021c6f383d2f0576737672250bc.png)
![](https://img-blog.csdnimg.cn/img_convert/7df2fedd69de12c7ea47a3cf2721853f.png)
网关如何解决跨域:
通过添加一个配置类解决跨域
![](https://img-blog.csdnimg.cn/img_convert/fdbdc6da40edc355d2755700a54d8847.png)
Day6:
登录接口的开发:
分为手机号登录和微信扫码登录
![](https://img-blog.csdnimg.cn/img_convert/386f5ca30a53b915c2fecb064ce3ead5.png)
![](https://img-blog.csdnimg.cn/img_convert/d6f88271537d99cd29f138b4798fe7ad.png)
本项目使用JWT生成登录后的TOKEN,使用工具类生成验证码,通过整合阿里云短信服务向手机发送,成功发送后使用Redis设置验证码的有效时间。(2分钟有效)
![](https://img-blog.csdnimg.cn/img_convert/badee76ac88ce69aa6bc0418a3d0450b.png)
阿里云OSS:
![](https://img-blog.csdnimg.cn/img_convert/0ed5c1043ee7c1531d2ae70e4449510e.png)
Day7:
![](https://img-blog.csdnimg.cn/img_convert/a91550d1f172105b785a7b396ec8938f.png)
预约下单功能:
根据就诊人id获取就诊人信息
根据排班id获取预约下单数据
![](https://img-blog.csdnimg.cn/img_convert/57dc6859399a3d1bb747fd923acbaed5.png)
![](https://img-blog.csdnimg.cn/img_convert/0e505f4ddc7654c68ed2116feb81db3e.png)
RabbitMQ:
![](https://img-blog.csdnimg.cn/img_convert/aa1f467c108f45489e41a5c1ec76922d.png)
RabbitMQ简介
以商品订单场景为例
![](https://img-blog.csdnimg.cn/img_convert/9d1fd7461c864c5588d45c4974a26c5e.png)
本项目通过发送mq信息来更新号源和发送短信通知。
定时任务功能:
@Scheduled
![](https://img-blog.csdnimg.cn/img_convert/d88e539a584c9356ac99d3e6f3b504d3.png)
ECharts:
Echarts x轴和y轴需要json数组格式的数据,后台返回订单量和日期作为x轴和y轴
![](https://img-blog.csdnimg.cn/img_convert/bd84dc153156ed1062a6b31c90d79210.png)
![](https://img-blog.csdnimg.cn/img_convert/8a976f0f973e569bd9feb410861f218a.png)
Day8:
项目总结:
![](https://img-blog.csdnimg.cn/img_convert/fb4efbc324b542357f4ba90ed2463f6c.png)
![](https://img-blog.csdnimg.cn/img_convert/d9180b377d4a5aeb60c6b2a65a8710c1.png)
![](https://img-blog.csdnimg.cn/img_convert/57c13143475e011448bb4d2dd070253c.png)
![](https://img-blog.csdnimg.cn/img_convert/74839206ea448e5fa3fe1fd712c8c91c.png)
![](https://img-blog.csdnimg.cn/img_convert/6cf07ea8716ceb48b4f3fe9b2a722313.png)
![](https://img-blog.csdnimg.cn/img_convert/9c927b6df7adcdf5f07180aebb22fe62.png)