自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

YXXXYX的博客

KEEP CODING

  • 博客(153)
  • 资源 (4)
  • 收藏
  • 关注

原创 线程池:优化多线程管理的利器

线程池是优化并发执行的关键工具,通过合理配置参数、选择适当的任务队列和饱和策略,可以充分发挥其优势。在实际应用中,根据任务类型、负载和性能需求进行调整,动态监控线程池的状态,将使得线程池更好地适应不同的应用场景,提高系统的并发性能。

2024-02-20 09:00:00 1080 2

原创 点赞功能实现思路

点赞功能是一种常见的社交互动功能,通常用于用户对内容或其他用户的喜爱、认可或支持进行表达。它在许多应用和网站中得到广泛应用,能够提升用户参与度,用户通过点赞表达对内容的喜爱、赞赏或认同,从而增加用户与平台的互动和留存。同样也是社交影响力的展示,通过点赞数可以作为一种社交影响力的展示指标。当用户获得大量点赞时,可以增强其在社交网络中的影响力和可见度。这对于内容创作者、个人品牌或企业来说,有助于建立声誉和吸引更多的关注。在这里我演示一下如何实现一个简单的点赞功能;这里我实现的是一个文章点赞功能的实现;首先需要两

2023-07-20 08:00:00 2216

原创 使用OpenAI创建对话式聊天机器人

希望本文能为你提供有关使用OpenAI创建对话式聊天机器人的简单案例,希望对你有帮助!最近准备考研加期末有点忙,简单分享一下之前研究openai的接口,案例有点简单,只算一个入门,今后再有研究了再补充openAi文档。

2023-06-03 23:44:06 3761

原创 log4j2实现日志输出

Log4j2是一个功能强大的日志框架,它可以帮助我们轻松地记录和管理应用程序的日志信息。在Spring Boot应用程序中使用Log4j2也非常简单,只需要在项目中添加Log4j2的依赖和配置文件,然后在代码中使用Logger对象输出日志即可。在实际开发中,我们可以根据自己的需要定制Log4j2的日志输出格式和级别,以满足不同的需求。同时,我们也需要注意日志输出的性能问题,避免在高并发场景下过多地输出日志信息,从而影响应用程序的性能。

2023-05-02 11:01:51 4395 1

原创 springboot实现邮箱验证码功能

邮箱验证码是一个常见的功能,常用于邮箱绑定、修改密码等操作上,这里我演示一下如何使用springboot实现验证码的发送功能;这里用qq邮箱进行演示,其他都差不多;

2023-04-08 14:42:45 3683 7

原创 aop实现接口访问频率限制

项目开发中我们有时会用到一些第三方付费的接口,这些接口的每次调用都会产生一些费用,有时会有别有用心之人恶意调用我们的接口,造成经济损失;或者有时需要对一些执行时间比较长的的接口进行频率限制,这里我就简单演示一下我的解决思路;主要使用spring的aop特性实现功能;

2023-03-10 09:25:28 1432 3

原创 手机号验证码登录的思路

手机号验证码登录业务功能实现个人思路

2023-03-04 08:00:00 1697 4

原创 微信公众号扫码授权登录思路

微信扫码登录的一些思路

2023-02-14 08:15:00 4635 6

原创 自定义starter解决请求绕过网关问题

微服务项目中网关是一个常见的模块,通过网关的分发可以实现负载均衡、鉴权等操作;但是搭建好网关可以发现,虽然可以通过网关端口请求后端,如果有其他服务的地址依然可以使用其他服务地址绕过网关请求,这里我提供一种思路来实现发送的请求只能通过网关到达对应服务。

2023-01-29 09:00:00 1205

原创 腾讯云短信服务——获取验证码

最近做验证码登录时又重新回顾了一下这些内容,也发现了之前我忽略的一些细节,比如频率限制等,后期如果有机会再补上;对于腾讯云和阿里云两个短信平台的测试都需要充点钱才能发短信,几块钱就行,腾讯云能免费领100次短信,当然短信平台不止这两家,还有很多可以使用,感兴趣可以自行搜索;

2023-01-13 15:18:44 4180 1

原创 实现自定义springboot的starter

学过springboot的肯定用过各种starter,通过这些starter我们可以节省很多没有必要的配置,让项目更简洁,配置起来也更简单。那么starter是怎么开发的呢?这里我通过一个简单的案例演示如何创建一个自己的starter。

2023-01-04 17:39:11 502 1

原创 mongodb实现请求日志存储

最近学习了mongodb,想实际应用到项目中,就先简单实现了一个存储请求日志的功能;为什么使用mongodb存储日志,主要是因为日志数据量大、低价值、写入频繁,并且对事务要求不高,使用传统的关系型数据库存储这些数据时会比较浪费,所以一般使用传统的文件进行存储。而mongodb就是一个文档类型的数据库,并且写入速度快,添加字段随意,拓展性好等,非常适合存储日志这种数据;下面我用一个案例演示一下实际应用:环境java8、springboot。

2022-12-17 16:26:58 3051

原创 微信登录——授权登录获取用户信息

关于使用微信提供的授权接口获取授权用户的信息

2022-11-01 16:54:32 8049 4

原创 mongodb开发项目总结(java实现crud)

mongodb通过java进行常见的crud操作

2022-10-22 08:17:59 1704 1

原创 阿里云短信服务——短信发送验证码

短信发送的学习是一个很简单的调用api接口的案例,阿里云也有很多其他的服务,可以尝试调用它的接口实现更多好玩的功能;

2022-10-19 23:58:22 6174 2

原创 关于@Transactional和synchronized使用的问题

@Transactional和synchronized一起使用出现的问题和思考

2022-10-14 18:44:41 2625 2

原创 微信公众号被动消息回复实现

其实消息回复并不是特别难的,主要是能看懂文档就很容易就实现,但是微信文档有点抽象(其实是我菜)不好看懂,所以还是需要自己多尝试一下;传送门。

2022-10-02 14:39:54 1901

原创 微信公众号扫码登录(一)—— 获取微信公众号二维码

总的来说只要细心看文档还不算是特别难理解的,所以一定要多看文档!总的来说流程就是那三步:因为文章是本人理解记录的,可能会有错误,有错误问题欢迎交流!

2022-09-25 16:12:01 14445 8

原创 redis应用——实现访问量案例(redis+定时任务+分布式锁)

频繁读写操作需要设置缓存;同样热点数据也要注意缓存,比如一些热点话题、文章什么的;如果对文章内容有问题也欢迎一起交流!

2022-09-02 09:56:31 1872

原创 关于分布式锁的个人理解

关于分布式锁的一些个人总结

2022-08-16 10:13:27 844

原创 WebSocket理解和使用

对于websocket的一些个人理解和使用

2022-08-12 11:05:51 2635

原创 用vue2-ace-editor做个代码编辑界面

最近写前端需要写一个简单的代码编辑器,使用了vue2-ace-editor这个插件;这里简单总结一下使用方法;环境:如果你也是vue2,并且不想再重写这个编辑器组件,可以引入ant-design-vue的组件库:这里是官方文档,可以看文档引入:传送门(注意:查看文档版本是1.7.8)然后就是引入vue2-ace-editor插件:vue2-ace-editor的github仓库:传送门引入方式:剩下步骤官网都写了,当然如果你想直接cv我下面的组件可以不用看,或者作为参考;为了提高复用性,并使代码更简洁,我首

2022-08-08 15:48:19 7489 5

原创 Gin——请求发送和路由总结

Gin是Golang的一个web框架,性能高且拓展性强,使用也很简单;下面简单介绍一些请求时常用到的操作;注当下前后端分离项目居多,所以对于Gin框架模板相关的内容就不介绍了;

2022-08-02 16:13:39 1894

原创 Java8新特性——Optional类

Null Pointer Exception空指针异常在Java中可以说是很常见了,所以一般会在代码逻辑中进行if判空;Java8新特性中有一个Optional类在一些情况下可以更加优雅的进行判空处理,下面简单介绍一下常用的几个方法;创建Optional类有三个方法(都是静态方法):创建一个空的Optional对象,没有任何参数赋值;of(T t)创建一个非空的Optional对象,且参数t不能为空;*ofNullable(T t)参数t可以为空,如果为空创建一个Optional空对象,如果非空创建

2022-07-10 08:44:32 904 2

原创 跨域问题解决方案

跨域问题一般会在前后端分离的项目中遇到,跨域的产生是因为浏览器为了安全设置的同源策略,只有协议(http/https)、域名(www.test.com)、端口(8080/8081…)三者都相同时才不会产生跨域问题;这也解释了为什么前后端分离的项目会有跨域问题,就比如我们在同一台服务器上开发,前端的url为:http://127.0.0.1:3000,而后端的url为:http://127.0.0.1:8080,两者端口都不同如果相互访问定然会产生跨域问题;如图:前端http://localhost:3000

2022-07-06 17:40:18 2575

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

很多项目的数据库表都会设置create_time、update_time等公共字段,这些公共字段都是在数据库创建或更新时需要设置值;如果自己设置还需要额外写set代码,一旦这样的表多了之后就很麻烦;所以我们可以想办法让这些字段可以自动填充;而mybatis-plus正好提供了这样的功能;下面演示一下如何使用mybatis-plus实现公共字段自动填充首先需要创建一个填充数据处理器,实现MetaObjectHandler:该处理器需要交给Sping管理,加上@Component注解;有时会有createUs

2022-07-01 14:35:31 1549 1

原创 唯一性索引与逻辑删除冲突问题解决思路

今天做项目中遇到了一个问题:逻辑删除和唯一性索引同时存在的情况下,已经逻辑删除的数据由于唯一性索引的约束无法再次添加,该怎么办?这次又遇到了一样的问题,想到上次的那种方法不仅不合规,而且非常麻烦(为了一个唯一性逻辑判断再调用数据库查询然后再写逻辑判断),这次就找了一下解决方法,下面简单介绍一下;所有解决方法就一个思路:通过逻辑删除字段和约束字段组合为一个索引;比如有一张teacher表,唯一性索引为name,逻辑删除字段为is_delete:唯一性索引:为了解决冲突问题,首先需要修改一下索引,让逻辑删除字段

2022-06-30 18:30:27 3419 8

转载 js中的同步和异步

如果大家熟悉java,应该都知道,java是一门多线程语言,我们常常可以利用java的多线程处理各种各样的事,比如说文件上传,下载等,而JavaScript是否也可以支持多线程呢?答案是否定的,JavaScript是一门单线程的语言,因此,JavaScript在同一个时间只能做一件事,单线程意味着,如果在同个时间有多个任务的话,这些任务就需要进行排队,前一个任务执行完,才会执行下一个任务,比如说下面这段代码:很容易可以看出,输出会依次输入1,2,因为代码是从上到下依次执行,执行完fun1(),才继续执行f

2022-06-20 19:26:31 382 2

原创 session共享(redis实现)

大厂很多项目都是部署到多台服务器上,这些服务器在各个地区都存在,当我们访问服务时虽然执行的是同一个服务,但是可能是不同服务器运行的;在我学习项目时遇到这样一个登录情景,假设有如下三台服务器(如图),就使用session存放用户的登录信息,通过该信息可以判断用户是否登录:假设本次登录是通过服务器01执行的,那么这次的登录session信息就存放到了内存01中;但是当我再次访问时却是服务器02执行操作,而登录session信息却在内存01中,服务器02无法获取,所以它就会判断我没有登录,返回错误的信息…我们想要

2022-06-18 09:46:58 13061 3

原创 小感悟:多对多关系,一定要创建关系表吗?

初学数据库时,如果出现多对多关系,那么就需要额外创建一个关系表,将两边的外键存入,以此建立连接;但是遇到多对多关系,一定需要创建关系表吗?就好比数据库范式在一些情况下会故意违背产生数据冗余一样,规矩是死的,业务是灵活的,所以在出现多对多的情况下需要考虑清楚是否真的有必要创建关系表;在阿里巴巴开发手册中有这样一个规范:这就限制了三个表的连接查询,所以在设计表中很多大厂会避免各个表之间有太多的连接关系,因为这样·会使得业务变得复杂,并且会影响查询性能;但是这是阿里的一个规范,还是要根据自己实际业务来进行一个判断

2022-06-14 11:32:58 2383 2

原创 初识微服务

微服务是一种架构思想,这种思想在近几年被广泛的应用;因为过去的单体架构中存在有许多问题,慢慢促使了微服务架构的广泛使用;微服务架构是一种架构模式,或者说是一种架构风格,它体长将单一的应用程序划分成一组小的服务,每个服务运行在其独立的自己的进程内,服务之间互相协调,互相配置,为用户提供最终价值,服务之间采用轻量级的通信机制(HTTP)互相沟通,每个服务都围绕着具体的业务进行构建,并且能够被独立的部署到生产环境中,另外,应尽量避免统一的,集中式的服务管理机制,对具体的一个服务而言,应该根据业务上下文,选择合适的

2022-06-04 08:30:00 162

原创 Swagger3的基本使用

Swagger3简介swagger官网:传送门swagger是一个Api框架,就是一个工具,就比如我们可以使用postman测试接口一样,swagger主要作用是生成RESTFUL接口的文档并且可以提供功能测试;可以看一下官方文档简介:What Is Swagger?Swagger allows you to describe the structure of your APIs so that machines can read them. The ability of APIs to des

2022-05-27 07:30:00 21431 3

原创 对函数闭包的简单理解

文章目录引言闭包概念闭包理解总结引言go语言支持函数闭包,之前没有了解过,第一次接触感觉挺神奇的,简单记录一下自己的理解;闭包概念引用网上的解释:Go语言中闭包是引用了自由变量的函数,被引用的自由变量和函数一同存在,即使已经离开了自由变量的环境也不会被释放或者删除,在闭包中可以继续使用这个自由变量,因此,简单的说: 函数 + 引用环境 = 闭包;这里主要提到有两点:自由变量和函数;在go语言中闭包一般通过匿名函数实现,所以这个函数就是指匿名函数,而自由变量就是可以简单理解为匿名函数中调用的变量,

2022-05-07 07:30:00 864 1

原创 [操作系统]进程同步和互斥

文章目录引言基本概念进程同步临界资源进程互斥信号量整型信号量记录型信号量信号量实现同步和互斥实现互斥实现同步经典进程同步和互斥问题生产者-消费者问题总结引言简单总结一下我对进程同步和互斥的理解,用于操作系统的复习;如果有理解偏差欢迎斧正;部分资料来源:王道考研基本概念进程同步由于操作系统中的多道程序环境下,进程是并发执行,并发执行的进程无法确定谁先执行,谁后执行,存在异步性(各个并发执行的进程以各自独立的、不可预知的速度向前推进);而在一些情况下我们需要对这些异步并发的进程的顺序进行一个合理

2022-05-02 07:30:00 2213 2

原创 MySQL中的列转行和行转列

引言在学习sql中遇到了列转行和行转列的题目,这里总结一下如何在对应的情景下解决不同的题目;列转行创建一个表stu_score_01:SET NAMES utf8mb4;SET FOREIGN_KEY_CHECKS = 0;-- ------------------------------ Table structure for stu_score_01-- ----------------------------DROP TABLE IF EXISTS `stu_score_01`;

2022-04-16 07:00:00 2631 5

原创 [小技巧]PicGo、Gitee和Typora构建在线图床

引言现在写文章时有很多在线编辑器,并不是特别简洁好用,Typora这个markdown编辑器给我们了一个更好的选择,但是编辑后文章中的图片管理起来很麻烦,尤其是如果想要把文章发布到多平台;这时我们就需要有一个图床来存放文章中的图片,这里就教大家如何使用PicGo、Gitee和Typora构建在线markdown图床;准备工作首先需要下载Typora软件,官网在这里:传送门然后需要注册一个Gitee账号,Gitee网站:传送门这里使用Github也可以,但是GIthub有时不稳定,所以建议使用Git

2022-04-07 11:50:03 1314 5

原创 数据库表关系详解(一对多、一对一、多对多)

引言在数据库中,单表的操作是最简单的,但是在实际业务中最少也有十几张表,并且表与表之间常常相互间联系;一对多、一对一、多对多是表与表之间的常见的关系,初学时在多表连接时会纠结如何写对应的Sql语句,下面就分享一些小技巧;一对多一对多是最基础的表间关系,意思是一张表A中的一条记录可以对应另一张表B中的多条记录,另一张表B中的一条记录只能对应一张表A中的一条记录举个一对多的例子:有两张表,表A:学生表student(子表)id name class_id(外键非空:班级id)100

2022-03-13 07:30:00 53960 11

原创 MySql连接查询——内连接与外连接

引言实际业务开发中,往往会涉及到多张表之间的数据交互,这时候单表查询已经不能满足复杂的业务需求了,所以就需要用到多表的连接查询;连接查询主要分为以下三种:内连接等值连接非等值连接自连接外连接左外连接右外连接全连接其中常用的就是内连接和外连接,全连接用处很少,几乎不用,所以这里就不介绍了;数据库表传送门下面示例将会用到三张表:emp员工表+-------+--------+-----------+------+------------+---------+----

2022-03-05 07:30:00 3282 13

原创 SpringBoot自动配置原理

引言在SpringBoot中,自动配置减少了很多操作步骤;我们可以在SpringBoot主配置文件application.yml文件中配置很多属性,那么这些属性又是如何生效的?这就需要深入源码来探究一下底层原理了;测试环境:2022年2月13日,java版本:SDK16,springboot版本:2.6.3开发工具:IDEA(因为SpringBoot源码在不同版本下会有细微不同,但是大体都是相同的,跟着思路来都能走通)走进源码@SpringBootApplicationSpringBoot项

2022-02-20 07:30:00 1919 10

原创 [SSM基础]Spring学习笔记

Spring笔记一、Spring了解Spring理念:使现有的技术更加容易使用,整合了现有的技术框架,简化企业级应用开发;优点:Spring是一个免费开源的框架Spring是一个轻量级、非入侵式(在原先代码上加上Spring框架后没有影响)的框架支持事务的处理,对框架整合的支持缺点:配置繁琐核心:控制反转(IOC),面向切面编程(AOP)总结:Spring就是一个轻量级的控制反转(IOC)和面向切面编程的框架;二、Spring核心1:控制反转(IOC)理论概念理解:百度百科

2022-02-12 07:00:00 853 6

Java进阶-SSM框架初学应用-用SSM实现一个简单的CRUD操作

1:非常适合初学者练手的超简单SSM整合小项目; 2:在做这个项目前,你需要学习的基础内容:JavaSE、数据库、JavaWeb基本知识、SSM框架; 使用技术:Maven工具、Tomcat服务器、Spring、Mybatis、SpringMVC、了解基本前端知识(HTML、CSS、JavaScript、JSP、JSTL) 这个小项目很简单,但是五脏俱全,可以从小项目中看到实际开发中项目的基本结构和关系,并且不会花费太多时间(前端如果实在不会写可以复制粘贴,但是要能看懂是什么意思)

2022-02-02

哈夫曼编码实现对文件的加密解密

语言:C++ 软件:vs2019 可以对.txt文件内容进行加密,但是加密字符仅限于ascii表里的字符, 这只是提供一个思路,学会了代码可以自定义编码规则;

2021-12-03

JDK 6、9 API中文文档,JDK8API英文文档

希望对你有帮助

2021-09-29

基于STL的演讲比赛流程管理系统.rar

**比赛规则** 学校举行一场演讲比赛,共有12个人参加。比赛共两轮,第一轮为淘汰赛,第二轮为决赛。 比赛方式:分组比赛,每组6个人;选手每次要随机分组,进行比赛 每名选手都有对应的编号,如 10001 ~ 10012 第一轮分为两个小组,每组6个人。 整体按照选手编号进行抽签后顺序演讲。 当小组演讲完后,淘汰组内排名最后的三个选手,前三名晋级,进入下一轮的比赛。 第二轮为决赛,前三名胜出 每轮比赛过后需要显示晋级选手的信息 **程序功能** 开始演讲比赛:完成整届比赛的流程,每个比赛阶段需要给用户一个提示,用户按任意键后继续下一个阶段 查看往届记录:查看之前比赛前三名结果,每次比赛都会记录到文件中,文件用.csv后缀名保存 清空比赛记录:将文件中数据清空 退出比赛程序:可以退出当前程序

2021-08-26

空空如也

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

TA关注的人

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