![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
项目技巧
ssm框架+layui的开发技巧
进击的小王666
这个作者很懒,什么都没留下…
展开
-
redis最佳实践
SortedSet(ZSet):跳表,增删数据的复杂度都是O(logn),每个成员都有对应的分数用于排序,访问内部成员会很高效,使用场景如大型游戏积分榜,可以用zincrby增加用户分数,用zrange来获取top10,用zrange和zrank来获取用户的排名信息和附近的排名用户。Hash:同hashmap,需要注意的是其编码有几种类型,压缩编码占据空间小但获取效率低容易导致pending,所以可以在设置时指定编码,对于对象,如果只更新部分字段就显得更加灵活而不需要像字符串一样维护整个json。原创 2024-02-21 20:28:52 · 601 阅读 · 0 评论 -
Graphql递归查询树状结构(无解)
我的想法就是要么平整树,在客户端复现结构,要么借助第三方工具返回一个json。无解,刚去github上看了,2月份时候开了个会不同意开放这个无限递归。原创 2022-11-17 14:44:58 · 527 阅读 · 0 评论 -
skywalking本地启动调试失败(已解决~SkyWalking doesn‘t work properly without JavaScript enabled. )
We're sorry but SkyWalking doesn't work properly without JavaScript enabled. Please enable it to continue原创 2022-11-04 10:52:42 · 3482 阅读 · 0 评论 -
JDK监控接入(prometheus)返回结果含转义字符导致不能被识别
接入后访问localhost8080/prometheus发现可以正常吐出指标数据,但是会发现结果有\n、"这类转义字符,不要以为没有什么影响,导致公司的监控中台没法识别,数据没法可视化查阅。原创 2022-08-02 14:55:39 · 896 阅读 · 1 评论 -
SpringBoot的拦截器和过滤器(包含实现方法)
拦截器用于对controller进行预处理和后处理可以定义拦截器链过滤器是Servlet规范的一部分,是对请求进行处理的拦截器是springmvc的一部分过滤器可以拦截静态资源,拦截器不可以(针对controller)拦截器的实现方式是动态代理和反射,AOP的概念拦截器的实现实现HandlerInteceptor接口,重写preHandle(controller方法执行前),postHandle(controller方法执行后),afterCompletion(跳转完成,不可再请求转发或重定向原创 2022-02-13 12:09:28 · 660 阅读 · 0 评论 -
idea报错(系统找不到指定的路径)
Error:Internal error: (java.io.FileNotFoundException) C:\Users\鐜嬫旦娉�\.IntelliJIdea2017.3\system\compile-server\test_659a0244\timestamps\data (系统找不到指定的路径。)java.io.FileNotFoundException: C:\Users\鐜嬫旦娉?\.IntelliJIdea2017.3\system\compile-server\test_659a0244原创 2022-02-08 12:08:34 · 9993 阅读 · 7 评论 -
Redis哨兵集群【一主二从三哨兵】
1、哨兵模式详解Redis Sentinel是Redis 的高可用性解决方案,由一个或多个Sentinel(哨兵)实例组成。它可以监视任意多个主服务器,以及这些主服务器属下的所有从服务器,并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的主服务器,它的主要功能如下:监控(Monitoring):Sentinel会不断地检查你的主服务器和从服务器是否运作正常。通知(Notification):当被监控的某个 Redis 服务器出现问题时, Sentinel可以通过API向原创 2022-01-05 17:28:17 · 1412 阅读 · 0 评论 -
epic每日自动领取游戏(docker+win10)
epic不做过多介绍,由于每次领游戏都要经过忘记密码的烦恼,因此采用docker自动领取每日免费游戏,非常的不错。第一步:安装并运行Docker点击链接,选择for windows打开已下载的文件,不用选择路径,一路next就帮你装好了。**第二步:下载 Linux 内核更新包**点击链接,选择下载最新包第三步:下载「自动领取Epic游戏」项目docker pull luminoleon/epicgames-claimer此命令是在powershell命令行里粘贴,按windows+原创 2021-12-25 10:02:18 · 5129 阅读 · 0 评论 -
springboot集成腾讯云发送短信验证码(测试可用)
腾讯云搜索短信业务先创建应用需要记录的两个参数,在调用接口时需要设置然后还需要申请一个免费的订阅号(公众号个人申请有些许麻烦)微信公众平台下一步是创建签名和模板,前者需要审核,后者则比较简单注意,签名内容需要和你申请下来的订阅号名称一致(初始都是新注册公众号这个名字),否则会不通过,不要问我怎么知道的。模板比较简单,里面不可以加敏感信息(防诈骗),不可以有【】,因为之前的签名内容将被包含在【】里一起发出。下面进入代码时间:引入maven依赖<!--腾讯云短信服务SDK--&g原创 2021-12-09 17:49:06 · 675 阅读 · 1 评论 -
错误类型:springboot +mybatisplus请求数据返回结果为空 只显示select count(*)语句执行
这篇博文其实一直在纠结要不要写,但他确实曾经给我带来了困扰,希望遇到同类错误的童鞋可以借鉴一下,避免不必要的debug时间。postman发送请求,看起来没有任何错误,但返回结果为空mabatis log里面只显示出一条SELECT COUNT(*)FROM discuss dINNER JOIN sys_user uON d.user_id = u.idWHERE (d.parent_id = 0 AND d.status = 1 AND d.plate_id = 2);也就是分页功能启原创 2021-12-07 22:25:36 · 648 阅读 · 0 评论 -
递归回显菜单树(后端)
实体类,含parentId,这个的 List children上面加 @TableField(exist = false)注解是由于表中没有此字段。@Data@AllArgsConstructor@NoArgsConstructorpublic class Menu { Long id; Long parentId; String name; String url; String perms ; Integer type ;原创 2021-10-19 21:32:10 · 181 阅读 · 0 评论 -
跨域访问报错(基于springboot&&vue框架的前后端分离将出现的问题)
出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(protocol),主机(host)和端口号(port),三者中的任何一个不同都将产生跨域问题。 问题特征—前端向后台发送请求发原创 2021-10-18 19:09:59 · 233 阅读 · 0 评论 -
mysql日常小知识点
1、where 1=1的作用是什么?去掉1=1行不行? where 1=1 永真,当需要动态SQL拼接而判断条件不一定为真时(不一定拼接上去)起到占位的作用。可以使用标签代替,不可完全去掉这层意义。2、对比where 1=1和标签的区别 where 标签知道只有在一个以上的if条件有值的情况下才去插入“WHERE”子句。而且,若最后的内容是“AND”或“OR”开头的,where 元素也知道如何将他们去除。总之,更加智能和人性化。 而where 1=1 则一定在语句后面出现,且其追加的条件语句前原创 2021-10-15 10:39:53 · 182 阅读 · 0 评论 -
基于SpringBoot框架整合mybatis plus的一些小问题
1.mybatis plus 插入数据库生成的id很大如何解决?mybatis plus自3.3.0开始,默认使用雪花算法+UUID(不含中划线)产生id,因此我们会看到使用mybatis plus插入一条数据的时候,自动生成的id是这个样子的:1447571384928514049,而我们一般的id都是从1开始的,1447571384928514049导致后面自增的id也变成了一长串数字,不利于维护。因此一个注解需要加在实体类的id属性上:@TableId(type = IdType.AUTO)原创 2021-10-12 11:40:01 · 281 阅读 · 0 评论 -
错误信息:Unknown custom element;did you register the component correctly (Vue组件找不到)
其实这个错误与Vue关系不大,是由渲染元素的机制导致的,由于html在渲染时按照代码顺序从上到下进行渲染。<script> new Vue({ el:'.box', data:{ } })//此时会引起报错 Vue.component("weixinuser",{ template:` <div>{{messag.原创 2021-09-28 16:46:09 · 2763 阅读 · 0 评论 -
Vue框架简单的实现原理以及简介
1. 前端框架发展历史静态页面 (写好后固定,不能进行其他改变或渲染)==> ajax(异步请求) ==> mvc(model负责获取数据,controller处理成view层需要的数据,view显示数据) ==> mvvm(model与view双向绑定,不需要手动处理) ==> single page application 【spa】阶段(Vue、Angular、React等等,都属于Spa开发框架,不再通过页面之间相互跳转,以组件形式进行跳转功能的实现)2. MV*模式(M原创 2021-09-24 10:55:47 · 734 阅读 · 0 评论 -
基于SpringBoot框架的RBAC权限模型代码实现(demo)(纯接口无后台)
RBAC权限模型,基于角色的权限控制 ,本质即用户与角色,角色与权限多对多的关系,通过这样的模型方便权限管理,避免多次重复赋予用户权限,减小了时间的浪费。UserService/** * @className: UserService * @description: service类描述 * @author: whz * @date: 2021/9/19 **/public interface UserService { //通过id删除单个用户 int deleteBy原创 2021-09-20 20:45:28 · 881 阅读 · 0 评论 -
基于layui、ssm的xm-select多选框回显及取值(维护多对多的关联表)
定义添加教师的js(列表操作+弹框)var arrSelect; //添加教师 function addNews(edit){ var index = layui.layer.open({ title : "添加教师", type : 2, content : "/router/toteachersadd", success : function(layero, index){原创 2021-09-13 20:34:18 · 2111 阅读 · 0 评论 -
layui+ssm实现批量删除
这里的批量删除依然指的是假删除,将被删除数据设置为无效即可前端代码//批量删除前端 $(".delAll_btn").click(function(){ //该方法可获取到表格所有的选中行相关数据 var checkStatus = table.checkStatus('newsListTable'), data = checkStatus.data, //造一个数组存放选中数据的id ids =原创 2021-09-01 10:45:52 · 462 阅读 · 0 评论 -
关于session和cokkie的关系以及生命周期
session经常作为存储用户登录信息的工具,我们经常会分不清他和cookie的生命周期,为什么关闭浏览器后再次打开网页,发现需要重新登录?下边我们来了解一下。 首先要明确两者存储的位置,session位于服务器端,cokkie位于客户端这个是根本区别,另外,session和cookie的生命周期,都是可以人为设置的,不过呢,我们还是需要了解一下默认设置情况下各自的原创 2021-08-24 19:55:36 · 377 阅读 · 0 评论 -
ssm框架+pagehelper插件使用
在spring.xml中配置特别提醒,之前整合框架时已经配过sqpsessionfactorybean,不能再配一遍,而要在其内部以property形式配置 <!-- 分页插件 --> <property name="plugins"> <set> <!-- com.github.pagehelper为PageHelper类所在包名 --> <bean原创 2021-08-21 22:00:27 · 318 阅读 · 0 评论 -
基于layui框架的登录验证
layui使得前端开发非常的简洁,仅须阅读开发文档即可,今天我来分享一下使用layui做登录验证的过程原创 2021-08-20 21:54:47 · 2445 阅读 · 0 评论