若依框架使用教程
若依使用教程若依框架介绍官网:RuoYi
gitee 源码下载:RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本 (gitee.com)
采用的技术:
前端采用Vue、Element UI。
后端采用Spring Boot、Spring Security、Redis & Jwt。
权限认证使用 Jwt,支持多终端认证系统。
支持加载动态权限菜单,多方式轻松权限控制。
高效率开发,使用代码生成器可以一键生成前后端代码。
提供了技术栈(Vue3 Element Plus Vite)版本RuoYi-Vue3,保持同步更新。
内置功能
用户管理:用户是系统操作者,该功能主要完成系统用户配置。
部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
岗位管理:配置系统用户所属担任职务。
菜单管理:配置系统菜单,操作权限,按钮权限标识等。
角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
字典管理:对系统中经常使用的一些 ...
若依生成代码
若依生成代码新建新的目录在菜单管理页面
新增
建表12345678910111213141516-- ------------------------------ Table structure for sys_student-- ----------------------------DROP TABLE IF EXISTS `sys_student`;CREATE TABLE `sys_student` ( `student_id` int NOT NULL AUTO_INCREMENT COMMENT '编号', `student_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' COMMENT '学生名称', `student_age` int NULL DEFAULT NULL COMMENT '年龄', `student_hobby` varchar(30) CHARACTER ...
若依整合 ECharts
若依整合 EChartsECharts 简介官网地址:Apache ECharts
示例:Examples - Apache ECharts
饼图示例:Examples - Apache ECharts
前端项目安装 ECharts从 npm 获取1npm install echarts --save
添加菜单
添加路由
请求接口1234567// 查询学生兴趣export function listStudentHobby() { return request({ url: '/manage/student/pie', method: 'get', })}
Pie.vue123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263<template> <div id="myChart ...
读《今日摄影》
《今日摄影》第一章:摹仿–原创与复制作品
埃德·拉斯查 《日落大道上的每栋建筑》
托马斯·斯特鲁斯 《芝加哥艺术学院2》《观众 1》 《伦敦国家美术馆 1》
贝歇尔夫妇 通过全面详尽的摄影所表现出来的精确和明晰颂扬了这些工业建筑的美感 《卷扬塔》由于这些建筑正日渐消失,可以想象,用摄影保存这些建筑总有一天会是大家所希望的
第二章:面孔–姿态与伪装摄影能够扭曲也能美化。人们期望肖像可以揭示拍摄对象的某些个性特征。大体上肖像摄影分成两大方向:一部分作品坚持尝试揭示内心;而另一些作品则撇开这种预期且承认摄影肖像最终并没有能力刻画人物性格。
黛安·阿勃丝:“我们所有的伪装就好像是要提示外界应该如何来看待我们,但你希望人们看到的你,与你无法控制的,人们实际看到的你,这两者之间总是存在分歧。”
作品
辛迪·舍曼 浴室中的女子面对镜子搔首弄姿《无名电影剧照2号》
莱涅克·迪克斯特拉《强者之家》 《希拉自由镇》
古屋城一
安娜·福克斯 《黑彼得》
“我们所有的伪装就好像是要提示外界应该如何来看待我们,但你希望人们看到的你,与你无法控制的,人们实际看到的你,这两者之间总是存在分歧。”
第三章:色彩 ...
一、聚合搜索平台简介
聚合搜索平台简介技术栈介绍全栈
前端
Vue
Ant Design Vue
Lodash
后端
Spring Boot
MySQL
Elasticsearch (Elastic Stack) 搜索引擎
数据抓取
数据同步
4种
logstash
Canal
Guava Retrying
怎么保证 API 的稳定性
业务流程
先得到各种不同分类的数据
提供一个搜索页面(单一搜索、聚合搜索),支持搜索
可以去做一些优化,比如关键词高亮、防抖节流
项目计划第一期
前端后端项目初始化
前端搜索页面开发完成
后端基本搜索接口开发完成
第二期
数据抓取
聚合搜索接口的开发
适配器
门面模式
Elasticsearch 搭建及热门
第三期
Elasticsearch 的使用(建表、读写数据、调 API 、和 Java 整合)
数据同步(四种同步方式)
第四期
接口稳定性保障
项目优化(关键词高亮、搜索建议、防抖节流)
时间安排
前端初始化 10 min
后端项目初始化 10 min
前端搜索页面开发 20 min
整合 Axios 10 min
后端搜索接口开发 10 ...
聚合搜索优化
聚合搜索优化问题:怎样能让前端一次搜出所有数据、又能分别获取某一类数据(比如分页场景)
解决方案:
新增 type 字段:前端传 type 调用后后端同一个接口,后端根据 type 不同调用不同的 service 查询
比如前端传递 type = post ,后端执行 postService.query
逻辑:
如果 type 为空,那么搜索出所有数据
如果 通哟额 不为空
如果 type 合法,查出对应数据
否则报错
存在的问题: type 增多后,要把查询逻辑堆积在 controller 代码里吗?
思考:如何让搜索系统 更有效地接入更多的数据源?
门面模式介绍:帮助我们用户(客户端)更轻松地实现功能,不需要关注门面背后的细节
聚合搜索业务基本都是门面模式,即前端不同关心后端从哪里来、怎么去取不同来源、怎么去聚合不同来源的数据,更方便地获取到内容。
当调用系统(接口)的客户端觉得麻烦时,需要考虑是否可以抽象一个门面。
适配器模式1)定制统一的数据源接入规范(标准):
什么数据源允许接入?
数据源接入的时候需要满足什么条件
需要接入方的注意事项
聚合搜索系统要求 ...
二、聚合搜索平台数据抓取
聚合搜索平台数据抓取本章内容
获取多种不同类型的数据源
文章(内部)
用户(内部)
图片(外部,不是我们自己的项目、自己的用户生产的数据)
前后端单独的搜索接口联调,跑通整个页面
分析现有项目的问题 => 优化,聚合接口的开发
获取不同类型的数据源数据抓取流程
分析数据源(怎么获取?)
拿到数据后,怎么处理?
写入数据等存储
数据抓取的几种方式
直接请求数据结构(最方便) HttpClient、OkHttp、RestTemplate、Hutool(https://hutool.cn/)
等网页渲染出明文内容后,从前端页面的内容抓取
有一些网站可能是动态请求的,它不会一次性加载所有的数据,而是要你点击某一个按钮、输入某个验证码才会显示出数据。 => 无头浏览器: selenium、node.js puppeteer
注意:爬虫技术不能滥用,不能给别人的系统造成压力、不要侵犯他人权益!
1、获取文章要是内部没有文章,可以从互联网上获取基础数据 => 爬虫
抓取:https://www.code-nav.cn/learn/passa ...
Elastic Stack
Elastic Stack官网地址:https://www.elastic.co/cn/
包含了数据的整合 => 提取 => 存储 => 使用,一整套
各个组件介绍:
beats 套件:从各种不同类型的文件 / 应用中采集数据。比如:a, b, c, d, e, aa, bb, cc
Logstash:从多个采集器或数据源来抽取 / 转换数据,向 ES 输送。比如:a, bb, cc
elasticsearch:存储、查询数据
kibana:可视化 ES 数据
安装 ESelasticsearch:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/setup.html
安装:https://www.elastic.co/guide/en/elasticsearch/reference/7.17/zip-windows.html
注意:一套技术,版本必须要一致,此处使用 7.17 版本
安装 KibanaKibana:https://www.el ...
读《霍乱时期的爱情》
读马尔克斯的《霍乱时期的爱情》这场跨越半个世纪的悲欢离合,少年时的悸动,暮年时的相互依靠。中间历经千辛万苦,最后一起旅行,享受了一段短暂的美好时光。
惊叹于马尔克斯叙述语言的魅力,那无尽的赞美和无情的诅咒,一个个小故事来丰富情节。
弗洛伦蒂诺·阿里萨可以说是一个一穷二白的年轻人,而洛伦索·达萨想让他女儿将来能嫁给名门贵族,所以洛伦索·达萨需要拆散他们,企图向他女儿的舅舅寻求帮助时,不曾想他年轻的时候为了娶到现在的妻子,也曾是弗洛伦蒂诺·阿里萨现在的处境。马尔克斯用极具讽刺的手法,描述了洛伦索·达萨内心的贪婪和自私。
在叙述养鸽女和弗洛伦蒂诺·阿里萨的故事中,正当我看得入迷,以为故事情节达到高潮之时,养鸽女直接被丈夫残忍杀害的时候,故事情节戛然而止,最后只剩下坟墓前那盛开的玫瑰花,弗洛伦蒂诺·阿里萨来看他的母亲时会一起清理一下,以减少他内心的愧疚,可最后墓园里的所有玫瑰花都被政府清除掉了,并把墓园改成了公墓。
作者马尔克斯描写最后的结局中,以弗洛伦蒂诺·阿里萨回答船长的话“一生一世”作为结尾,给人无限的遐想,船既没有停泊,也没有继续前进,也暗示着弗洛伦蒂诺·阿里萨和费尔明娜·达萨的关系, ...
RabbitMQ
RabbitMQ1.MQ的相关概念1.1什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已,还是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ 是一种非常常 见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了 MQ 之后,消息发送上游只需要依赖 MQ,不 用依赖其他服务。
1.2为什么要用 MQ
流量消峰 举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正 常时段我们下单一秒后就能返回结果。但是在高峰期,如果有两万次下单操作系统是处理不了的,只能限 制订单超过一万后不允许用户下单。使用消息队列做缓冲,我们可以取消这个限制,把一秒内下的订单分 散成一段时间来处理,这时有些用户可能在下单十几秒后才能收到下单成功的操作,但是比不能下单的体 验要好。
应用解耦 以电商应用为例,应用中有订单系统、库存系统、物流系统、支付系统。用户创建订单后,如果耦合 调用库存系统、物流系统、支付系统,任何一个子系统出了故障,都会造成下单操作异常。当转变成 ...