自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 问答 (4)
  • 收藏
  • 关注

原创 Netty+springboot开发即时通讯系统笔记(四)终

1.线程池多线程,把消息同步给其他端和对方用户,其中数据持久化往往是最浪费时间的操作,可以使用mq异步存储,因为其他业务不需要拿着整条数据,只需要这条数据的id进行操作。2。消息校验前置,放在tcp层(netty服务中)

2023-08-19 01:45:30 700

原创 Netty+springboot开发即时通讯系统笔记(三)

登录成功返回登陆的im地址。1.在公共模块里写个RouteHandle接口,然后他的实现类去实现不同的均衡策略。2.在业务模块的config文件下的beanConfig中定义一个@Bean routeHandle,从配置文件中获取不同的负载均衡策略来初始化RouteHandle。3.在登录业务里调用方法。

2023-08-17 22:52:18 522

原创 Netty+springboot开发即时通讯系统笔记(二)

1.数据库设计,搞定了2.用户单表增删改查。全局异常处理:RestControllerAdvice在类上,ExceptionHandler在方法上,里面有个value值,可以写java提供的异常以及自定义异常3.好友:弱好友关系,关注粉丝强好友关系:qq,正常数据库中写一条就可以了,但是查询的时候很麻烦,所以需要写两条查询合并到一起。所以这里采用写两份的方法,A加B好友。插入from A,to B和from B ,to A ,这样查询就只需要一条语句了。

2023-08-16 23:11:31 618 1

原创 Netty+springboot开发即时通讯系统笔记(一)

表设计

2023-08-02 18:56:19 647

原创 关于springboot跨域和鉴权的一些问题

事情是这样的:我后端需要解决跨域和鉴权的问题,跨域在WebMvcConfig中重写addCorsMappings就行了,鉴权就写了个过滤器判断登录token,结果是不需要鉴权的请求能通过(登录,首页面的展示),需要鉴权的请求在postman上是正常的,能有响应。)WebMvcConfig配置才开始配置。:在发现token过期了之后,手动设置一些跨域信息,结果成功了。估计把过滤器换成拦截器也行。但是更奇怪的是我如果给出正确token,postman和浏览器都没问题。

2023-03-02 12:47:57 168

原创 vue路由跳转到相同组件无法初始化组件(无法刷新页面)

直接让它跳过去我们手动给个刷新,下面的flashCom就是刷新当前路径的函数,用this.$router.push的话就加个then,用router-link标签的话就绑定这个方法就行了(@click.native)

2023-03-01 20:26:34 295

原创 4个算法题

我想了几分钟,第一题,去年蓝桥杯遇到过,到现在我也没主动寻找答案,太懒惰了。第三题,感觉暴力循环都不好写。今天刷正在快乐的刷抖音,然后刷到了这个。

2023-02-22 19:31:21 106

原创 图书管理系统(ssm)day02

模糊查询正常情况下应该从数据库用like的,但是我不想写冗余的接口了,也不想对原来的代码进行改动,忽然想到可以用stream流操作,试了下,果然可以。

2023-02-10 22:13:26 368

原创 图书管理系统(ssm)day01

这是别人斥50块巨资托我开发的项目,一个简单的后台管理图书系统。

2023-02-09 23:23:21 319

原创 java数组转集合

【代码】java数组转集合。

2023-01-18 21:57:38 267

原创 java无序可重复的数据结构

使用PriorityQueue Comparator comparator():返回用于对此队列中的元素进行排序的比较器,如果此队列根据其元素的自然顺序排序,则返回null。boolean contains(Object o):如果此队列包含指定的元素,则返回true。Object element():检索但不删除此队列的头部,如果此队列为空,则返回null。Object peek():检索但不删除此队列的头部,如果此队列为空,则返回null。

2022-12-11 19:02:59 549

原创 二维数组的排序

如果要按行排序,因为二维数组的特性是一行一行的,可以直接找到arr[2][ ],但不可能直接找到arr[ ][2],所以要真的有按行排序的需求,可以先把数组颠倒一下,再按列排序。

2022-12-11 18:20:33 351

原创 关于mysql数据库模糊查询的潜在问题

初学者在学习的时候经常会写下面的模糊查询语句:有两方面的问题,第一,我们从结果分析入手:我们想看到的是什么,我们想看到的是蔡徐坤这个字符串能出现在我搜索的第一个位置,而不是我明明搜的蔡徐坤,蔡徐坤却出现在了最后面,前面一堆不太相干的。而之所以会这样,是因为mysqsl默认是按照主键排序的,所以我们要对结果集进行排序。直接上答案:代码翻译:先根据你搜索的字段长度进行升序,如果长度相同,谁是‘蔡徐坤’谁优先排序。第二个问题就是建议不要使用左模糊或者全模糊,因为索引文件具有 B-Tree 的最左前缀匹配

2022-12-04 14:05:09 1008

原创 java工具类

不是我封装的,是我从别人那找的,然后作分析。使用:二.计算两个字符串的相似度用法参考代码中的主方法

2022-11-29 01:49:00 171

原创 springMVC和springBoot文件上传的区别

springMVC需要导入并且配置在SpringMvcConfig中,或者以xml形式配置bean只有这样才能获取到MultipartFile file对象。

2022-11-24 01:39:25 156

原创 黑马头条知识点总结

本人跟着黑马的视频做了近一个月,过程有些仓促,所以来复盘一下重要知识点。主要就是java的spring cloud项目。追求可用性:Kafka、 RocketMQ 、RabbitMQ追求可靠性:RabbitMQ、RocketMQ追求吞吐能力:RocketMQ、Kafka追求消息低延迟:RabbitMQ、Kafka运用Redis缓存技术,实现热数据的计算,提升系统性能指标使用Mysql存储用户数据,以保证上层数据查询的高性能使用Mongo存储用户热数据,以保证用户热数据高扩展和高性能指标使用freemarke

2022-11-14 14:53:59 5876 11

原创 freemaker环境搭建,入门基础

​ FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。​ 模板编写为FreeMarker Template Language (FTL)。它是简单的,专用的语言,不是像PHP那样成熟的编程语言。那就意味着要准备数据在真实编程语言中来显示,比如数据库查询和业务运算, 之后模板显示已经准备好的数据。

2022-11-09 17:25:27 258

原创 minio入门及封装

MinIO基于Apache License v2.0开源协议的对象存储服务,可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。MinIO兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

2022-11-09 17:19:15 766

原创 瑞吉外卖全方位总结

基于springboot的瑞吉外卖项目个人总结

2022-10-25 00:19:48 5979 1

原创 使用定时任务发布文章的流程

A:每秒执行一次消费延迟队列(以topic_命名开头,以list存储的redis)数据,审核文章,存入article数据库中发布成功。B:每分钟执行一次未来数据(以future_命名开头,以set存储的redis)定时刷新。如果不是:只存tesk数据库,每5分钟给一次触发C的机会,如果触发成功将会有触发B的机会,成功后就能触发A。C:每5分种执行将数据库5分钟之内会被执行的数据同步到缓存。先把文章基本信息存入到news数据库。如果是:直接存入消费延迟队列和tesk数据库,被A消费审核后删除有关的数据。

2022-10-21 19:32:34 946

原创 关于使用servlet的乱码问题(待解决)

没问题,这就是书上教的那些。但如果我把这句话放在他们之间会怎么样?我的测试在很多个tomcat版本上都试过(7,8,9),同样的结果。当然,这种解决乱码的方式放在username上也是可以生效的。post提交,servlet这样写:输出会乱码,很正常对吧。疑问来了:我以为只有第一个不会被正确输出,第二个应该是中文。但实际上是这样的,两个都是乱码。所以为什么会出现这种情况?我在获取参数之前加个。

2022-10-11 22:12:29 330

原创 2022/10入坑MinIO

老版本是可以只使用一个端口的,说实话我也不知道为什么要分开成两个端口,总之现在使用java连接的话必须用api那个端口(9090)。这玩意更新这么快的嘛。我找的视频都是这两年的,就通过docker pull镜像的时候好像默认是最新版,然后后面就再也没正常过了。3.找到Buckets创建一个bucket,命名为leadnews。1.直接docker运行上面的命令(没有镜像自动会下载)2.访问ip+9000端口,就能看到登录页面了。执行这个测试类就行了。

2022-10-07 19:29:31 678

原创 别再用str==null || (““).equals(str)了,试试Stringutils.isblank(str)

StringUtils.isBlank(”\t \n \f \r") = true //对于制表符、换行符、换页符和回车符StringUtils.isBlank()均识为空白符。StringUtils.isEmpty(" “) = false //注意在StringUtils中空格作非空处理。StringUtils.isBlank(“\b”) = false //“\b"为单词边界符。判断某字符串是否为空,为空的标准是str==null或str.length()==0。判断某字符串是否非空,等于!

2022-10-05 19:35:38 166

原创 springboot项目部署后上传功能失效

日志上显示Permission denied拒绝访问,我才反应过来,启动的时候要用root用户启动,果然可以了。记得找日志的时候看好时间,从这个时间之后的第一条开始看,千万别从后往前看,后面的报错可能是前面的导致的。

2022-10-03 18:07:51 303

原创 Nginx详细教程

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。官网:https://nginx.org/Nginx可以作为静态web服务器来部署静态资源。

2022-10-01 11:42:07 611

原创 在宝塔一键部署java项目时遇到的一些问题

3.本地运行tomcat会一闪而过(打开bin\startup.bat),而我确实有jdk(只不过是直接配在path里的,jdk8的bin目录),我按照JAVA_HOME那样配置后才可以正常运行,为什么?2.关于我为什么分两次介绍普通项目部署,因为如果用第一种的话,我本机就这一个域名,部署一次就没了,我还想部署其他网站的时候还得把它删了,所以那个域名我得写成自定义的样子。所以,我的疑问是,为什么第二种方法不能一键部署,还得我找到它生成的tomcat的webapps文件夹手动部署?来访问不同的项目了。

2022-09-30 00:54:25 3956

原创 能去重且有序的集合LinkedHashSet

使用ArrayList的时候往往会遇到需要去重的情况,但是又不能使用会重新排序的set集合,我们就可以使用这个LinkedHashSet。

2022-09-28 18:06:54 416

原创 基于java中Arrayy.binarySearch的二分查找

二分查找的知识点和实现

2022-09-09 14:18:43 162

原创 Lua基础语法入门

Nginx编程需要用到Lua语言,因此我们必须先入门Lua的基本语法。

2022-08-29 23:53:02 843

原创 linux防火墙命令

​ A. systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作。​ B. firewall-cmd是Linux中专门用于控制防火墙的命令。​ C. 为了保证系统安全,服务器的防火墙不建议关闭。...

2022-08-29 13:32:53 300

原创 Redis5种数据类型

字符串 string哈希 hash列表 list集合 set有序集合 sorted set / zset。

2022-08-15 10:48:14 120

原创 数据库公共字段自动填充

Mybatis Plus公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,避免了重复代码。前面我们已经完成了后台系统的员工管理功能的开发,在新增员工时需要设置创建时间、创建人、修改时间、修改人等字段,在编辑员工时需要设置修改时间、修改人等字段。然后,我们启动项目,在员工管理模块中,测试增加/更新员工信息功能,然后通过debug 或者 直接查询数据库数据变更的形式,看看我们在新增/修改数据时,这些公共字段数据是否能够完成自动填充。...

2022-08-08 10:32:16 1381

原创 前端点击表单获取到的id值跟数据库值不一致(id为long型)

由于在SpringMVC中, 将Controller方法返回值转换为json对象, 是通过jackson来实现的, 涉及到SpringMVC中的一个消息转换器MappingJackson2HttpMessageConverter, 所以我们要解决这个问题, 就需要对该消息转换器的功能进行拓展。在分页查询时,服务端会将返回的R对象进行json序列化,转换为json格式的数据,而员工的ID是一个Long类型的数据,而且是一个长度为 19 位的长整型数据, 该数据返回给前端是没有问题的。...

2022-08-07 20:55:28 1198

原创 java全局处理数据库唯一约束异常

在项目中自定义一个全局异常处理器,在异常处理器上加上注解 @ControllerAdvice,可以通过属性annotations指定拦截哪一类的Controller方法。并在异常处理器的方法上加上注解 @ExceptionHandler 来指定拦截的是那一类型的异常。如果采用这种方式,虽然可以解决,但是存在弊端,需要我们在保存其他业务数据时,也需要在Controller方法中加上try…采用这种方式来实现,我们只需要在项目中定义一个通用的全局异常处理器,就可以解决本项目的所有异常。......

2022-08-07 13:04:39 2536

原创 AOP面向切面编程

切入点表达式标准格式动作关键字(访问修饰符返回值包名.类/接口名.方法名(参数)异常名)4.对接口进行描述,使用*表示模块名,例如UserService的匹配描述为*Service。5.方法名书写保留动词,例如get,使用*表示名词,例如getById匹配描述为getBy*2.查询操作的返回值建议使用*匹配。6.参数根据实际情况灵活调整。切入点表达式书写技巧。...

2022-07-30 11:48:03 91

原创 java中的反射机制

反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法;这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。......

2022-07-24 08:24:11 81

原创 Cookie和Session的区别

Cookie和Session的区别

2022-07-11 12:32:02 76

原创 服务器响应状态码

状态码大全

2022-07-01 23:26:56 66

原创 文件的相对路径写法

输出当前路径,然后看自己需要的文件相对这个文件的路径即可。

2022-06-28 00:22:43 126

原创 java文件操作:字符流,转换流,对象操作流,Properties集合

字符流的介绍由于字节流操作中文不是特别的方便,所以Java就提供字符流字符流 = 字节流 + 编码表中文的字节存储方式用字节流复制文本文件时,文本文件也会有中文,但是没有问题,原因是最终底层操作会自动进行字节拼接成中文,如何识别是中文的呢?汉字在存储的时候,无论选择哪种编码存储,第一个字节都是负数什么是字符集是一个系统支持的所有字符的集合,包括各国家文字、标点符号、图形符号、数字等l计算机要准确的存储和识别各种字符集符号,就需要进行字符编码,一套字符集必然至少有一套字符编码。常见字符集有ASCII字符集、G

2022-06-21 23:49:59 92

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除