- 博客(102)
- 资源 (2)
- 收藏
- 关注
原创 MinIO灾备方案(mc mirror)
本文主要介绍使用mc mirror命令进行MinIO多节点数据实时同步,详情可参考(文档非常详细,强烈推荐)。
2024-08-15 10:48:57
1312
原创 【PageHelper】踩坑记录
no such constructor: com.github.pagehelper.parser.defaults.DefaultCountSqlParser.()void/newInvokeSpecial
2024-04-25 15:08:13
953
原创 【MySQL】解决在join表时一对多的情况下重复数据的问题
在MySQL中进行JOIN操作,特别是在处理一对多关系的表时,可能会出现重复的记录,这是因为左表(或右表)中的每一项在与右表(或左表)连接时,如果对应有多条匹配记录,则会生成多次组合。,这里直接除掉去重后的a表数,最后得到的结果就是准确的,也不需要再额外使用子查询或是其他聚合操作。最后说明一下,以上例子是在SQL本身已经非常复杂并且无法再进行。的情况下针对单列数据聚合使用的,一般的业务场景直接使用。如果有更好的实现方式欢迎各位在评论区交流。一般的业务场景,使用。不难看出,关键点在于。
2024-02-22 15:32:08
2363
原创 【Kotlin】自定义Json反序列化
最近在项目中发现之前同事在使用Redis存储对象的时候,给日期字段存了两种不同的日期格式,进而导致查询时反序列化报错,因此写了一个注解配置类来自定义反序列化的方式。这只是临时的解决方案,正确的做法是在一开始保存到Redis的时候就统一好日期格式,尽量不要出现多种格式百花齐放的情况。接着只需要在对应的日期字段上加上注解即可。
2024-02-06 10:39:23
1261
原创 SpringSecurity详解
Spring Security 是 Spring 家族中的一个安全管理框架。相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富。
2022-08-20 18:46:11
1520
原创 Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required.
2022-08-10 17:28:31
431
原创 打印代码耗时之利器 - StopWatch
Spring也有一套同名的Api,导包的时候注意一下。import cn.hutool.core.date.StopWatch;public void test() { StopWatch stopWatch = new StopWatch(); stopWatch.start("任务名称01"); // 任务01 stopWatch.stop(); stopWatch.start("任务名称02"); // 任务02 s.
2022-05-11 17:15:06
2493
原创 Oracle高性能分页SQL
目前个人自用的一套Oracle分页SQL,欢迎交流讨论。select * from test t1, ( select rid from ( select rownum rn, t.rid from ( select rowid rid from test order by column1, column2 desc ) t where rownum <= #{pageNum} * #{pageSize} ) where rn > (#{pageNum} - 1) * #
2022-05-09 18:19:54
456
原创 mprelation注解实现MP一对一、一对多、多对一、多对多的自动关联查询
文章目录注解工具使用的优缺点及注意事项优点缺点注意事项实体类配置 & 相关注解的使用一对多(多对一)一对一多对多mprelation 关联查询的使用pom文件中引入mprelation依赖配置AutoMapper(扫描被注解的实体类)在实体类中配置注解(更多注解参见上面注解部分,此处只列出其中一个)Service层、Mapper层的使用测试调用结果输出AutoMapper类中的常用方法对于一对一,一对多,多对一,多对多的关联查询,MyBatis-Plus 在处理时,需要编写关联查询方法及配置re
2022-02-21 13:01:23
2608
原创 SQL相关规范
文章目录核心军规尽量不在数据库做运算控制单表数据量保持表手段苗条平衡范式与冗余拒绝3B字段类军规用好数值字段类型将字符转化为数字优先使用ENUM或SET避免使用NULL字段少用并拆分TEXT/BLO ##B不在数据库里存图片索引类军规谨慎合理添加索引字符字段必须建前缀索引不在索引列做运算自增列或全局ID做INNODB主键尽量不用外键SQL类军规SQL语句尽可能简单保持事务(连接)短小尽可能避免使用SP/TRIG/FUNC尽量不用 SELECT *改写OR为IN()改写OR为UNION避免负向查询和% 前缀模
2022-02-16 21:57:30
929
原创 JSR-303后台校验流程规范
文章目录简介校验的小栗子常用的校验规则空检查Boolean检查长度检查日期检查数值检查简介JSR-303是一个数据验证的规范,但Spring并没有对其进行实现,Hibernate Validator实现了这一规范,通过此实现来讲解SpringMVC对JSR-303的支持。校验的小栗子JSR-303的校验是基于注解的,首先要把这些注解标记在需要验证的实体类的属性前或是其对应属性的get方法上:// 实体类@NotEmpty(message = "用户名不能为空!")private Str
2021-11-26 10:51:47
313
原创 接口规范标准
接口标准第一章 总则本标准定义了在做接口设计时,需要遵守的基本约束。如违反接口设计标准,采用一事一议原则。第二章 术语RESTful : REST(Representational state transfer)是Roy Fielding在2000年提出的一种架构风格。 RESTful风格API是符合该架构的一种API设计风格。HATEOAS : 全称是Hypertext As The Engine Of Application State,是REST架构的一种约束,通过在返回值中带有操
2021-11-15 15:42:48
8548
原创 SpringSecurity授权
文章目录授权简介Spring Security对授权的定义Spring Security授权原理Spring Security授权内置权限表达式授权简介用户认证指的是不管是用户名密码,还是图形验证码,最终的目的都是让系统知道到底是谁在访问你的系统,解决的问题是:你是谁。本篇文章的内容主要讲解你能在系统中做什么事情,针对这个有的叫做授权, 有的叫做鉴权, 还有的叫权限控制。最终的目的就是你能够在系统中做什么。Spring Security对授权的定义安全权限控制问题其实就是控制能否访问URL。
2021-11-11 11:30:41
845
原创 SpringSecurity认证
文章目录SpringSecurity认证的基本原理 & 认证的2种方式过滤器链认证方式SpringSecurity认证的基本原理 & 认证的2种方式SpringSecurity框架会默认自动地替我们将系统中的资源进行保护,每次访问资源的时候都必须经过一层身份的校验,如果通过了则重定向到我们输入的url中,否则访问是要被拒绝的。具体的实现主要是由一系列过滤器相互配合完成,也称之为过滤器链。过滤器链过滤器是一种典型的AOP思想。Spring Security默认加载15个过滤器,
2021-11-11 10:23:44
914
原创 SpringSecurity入门简介
文章目录Spring Security简介安全技术方案对比ShiroSpring SecurityOauthOpenIDSpring Security框架功能简介Spring Security应用场景Spring Security简介Spring Security是一个功能强大且高度可定制的身份验证和访问控制框架。它是用于保护基于Spring的应用程序的实际标准。致力于为Java应用程序提供身份验证和授权。与所有Spring项目一样,Spring Security的真正强大之处在于可以轻松扩展以满足自
2021-11-08 13:36:56
373
原创 Java各类集合总结
Collection集合基本概念:java.util.Collection接口是List接口、Queue 接口以及Set接口的父接口,因此该接口里定义的方法可用于操作List、Queue和Set集合。常用方法说明boolean add(E e)向集合中添加对象boolean addAll(Collection<? extends E> c)用于将参数指定集合c中的所有元素添加到当前集合中boolean contains(Object o)判断是否包
2021-10-24 15:42:42
368
原创 网络编程随笔
文章目录网络编程的常识七层网络模型相关的协议协议的概念TCP协议UDP协议基于TCP协议的编程模型C/S架构简介编程模型相关类和方法ServerSocket类Socket类注意事项基于UDP协议的编程模型编程模型相关类和方法DatagramSocket类DatagramPacket类InetAddress类URL类基本概念常用的方法URLConnection类基本概念HttpURLConnection类的常用方法网络编程的常识七层网络模型OSI(Open System Interconnect),即
2021-10-17 18:59:51
305
原创 IO流详解
文章目录IO流的概念基本分类体系结构相关流详解FileWriterFileReaderFileOutputStreamFileInputStreamBufferedOutputStreamBufferedInputStreamBufferedWriterBufferedReaderPrintStreamPrintWriterOutputStreamWriterInputStreamReaderDataOutputStreamDataInputStreamObjectOutputStreamObjectInp
2021-10-15 10:09:04
1311
原创 JVM常见问题
文章目录JVM的内存结构OOM堆与栈的区别JVM的内存结构根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分。各区域的作用:OOMOOM,全称Out Of Memory,当JVM因为没有足够的内存来为对象分配空间,并且垃圾回收器也已经没有空间可回收时,就会抛出这个error。常见的内存溢出现象:堆内存溢出在JVM可使用的最大堆内存可以在启动的时候通过-Xmx参数指定。堆内存溢出是最为常见的内存溢出问题,发生堆内存溢出时,JVM会报告如下错
2021-10-09 20:07:53
104
原创 MySQL数据库常见问题汇总
文章目录对MySQL索引的理解索引在什么情况下会失效事务的概念及特性并发事务带来的问题 & 四种隔离级别MySQL的锁机制唯一索引与普通索引在性能上的区别对MySQL索引的理解在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构就是索引。简单理解:索引就是排好序的、能够帮助我们快速查找数据的一种数据结构。一个索引由表中的某一列或多列数据组成,这些数据被存储在某个数据结构中。在查找时My
2021-10-09 16:34:12
1444
原创 Spring常见问题汇总
文章目录Spring中的AOPAOP的概念为什么需要AOPAOP的分类Spring中的IOC和DIIOC的概念IOC的优点DI的概念IOC与DI的关系Spring是否支持配置多例对象单例、多例的使用场景单例、多例的配置方式Spring中都用到了哪些设计模式Spring中的AOPAOP的概念AOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个
2021-10-04 20:30:00
410
原创 MyBatis常见问题汇总
文章目录JDBC的不足之处 & MyBatis的解决方案MyBatis中Dao接口和XML文件的SQL如何建立关联MyBatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?MyBatis的动态sqlifwheresetforeachMyBatis中一级缓存与二级缓存的区别MyBatis中的接口绑定方式MyBatis与Hibernate的区别JDBC的不足之处 & MyBatis的解决方案数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能。解决方案:在myb
2021-10-04 18:24:00
1545
原创 SpringMVC常见问题汇总
文章目录SpringMVC执行原理图SpringMVC常用注解@Controller@RequestMapping@ResponseBody@RequestBody@PathVariable@RestControllerSpringMVC执行原理图各组件的详细说明可参考这篇文章:SpringMVC组件概述SpringMVC常用注解@Controller注解在类上,表明这个类是Spring MVC里的Controller,将其声明为Spring的一个Bean,Dispatch Servlet会自动
2021-10-04 11:29:33
429
原创 JavaWeb常见问题汇总
文章目录HTTP常见状态码GET与POST的区别重定向与转发的区别Session与Cookie的区别Servlet是单例还是多例JSP与Servlet的区别HTTP常见状态码状态码说明200OK,资源请求成功,最常见的状态码301Moved Permanently,永久重定向。http 转向 https 时,有时会使用 301,例如B站,请求的 URL 已移走。Response 中应该包含一个Location URL,说明资源现在所处的位置302Moved Temp
2021-10-04 09:41:30
1760
原创 JavaSE相关问题
文章目录Java的基本数据类型String底层使用的是char数组还是byte数组?类加载时的执行顺序面向对象的特性及基本原则四大特性封装继承多态抽象五大基本原则Singleton单例设计模式单例的概念单例的特点单例模式类图Java的基本数据类型4类8种:整 型: byte 、short、int、long浮点型: float 、double布尔型: boolean字符型: charString底层使用的是char数组还是byte数组?JDK1.8及以前,底层是char类型的数组:
2021-10-03 09:38:01
648
原创 多线程详解
文章目录基本概念程序和进程的概念线程的概念★ 线程的创建Thread类创建方式相关方法执行流程线程的生命周期线程的编号和名称常用的方法线程同步机制基本概念解决方案实现方式静态方法的锁定注意事项线程安全类和不安全类死锁的概念使用Lock锁实现线程同步基本概念常用方法与synchronized方式的比较Object类常用的方法线程池实现Callable接口FutureTask类线程池的由来概念和原理相关类和方法基本概念程序和进程的概念程序:数据结构 + 算法,主要指存放在硬盘上的可执行文件。进程:主要
2021-09-24 18:00:56
546
原创 Could not autowire. No beans of ‘XXX‘ type found.
问题描述:解决方案:在对应的mapper接口加上@Component注解:
2021-09-09 10:59:48
298
原创 SpringBoot的基本概念
文章目录约定优于配置SpringBoot概念Spring的优缺点分析SpringBoot解决上述Spring问题热部署约定优于配置Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with
2021-08-27 12:16:24
911
原创 FastDFS的安装与配置
文章目录安装配置启动安装# 安装gcc(编译时需要)yum -y install gcc gcc-c++# 安装libevent(运行时需要)yum -y install libevent# 安装 libfastcommon# libfastcommon由FastDFS官方提供,包含了FastDFS运行所需要的一些基础库# 上传 libfastcommon-master.zip 到 /opt 目录# 解压unzip libfastcommon.zip# 进入目录cd libfas
2021-08-15 21:34:14
405
1
原创 使用FastDFS实现图片服务器的功能【案例演示】
文章目录搭建图片服务器Nginx模块安装(Storage)Nginx安装(Tracker)创建前端页面index.jsp搭建web服务pom.xmlweb.xmlspring-mvc.xml文件实体类控制层添加fastDFS配置文件启动FastDFS服务,开始测试搭建图片服务器Nginx模块安装(Storage)# 上传 fastdfs-nginx-module_v1.16.tar.gz 到 /opt 目录下(压缩包请自行下载)# 解压tar -xf fastdfs-nginx-module_v
2021-08-15 18:29:30
620
原创 使用Redisson实现高并发下的分布式锁【案例演示】
文章目录Redisson简介案例演示pom.xmlweb.xmlSpring配置文件Java代码Redisson简介在实际开发中,Redis 其实并没有对 Java 提供原生支持。若想在程序中集成 Redis,就必须使用 Redis 的第三方库。Redisson就是用于在 Java 程序中操作 Redis 的库,它使得我们可以在程序中轻松地使用Redis。Redisson 在 java.util 中常用接口的基础上,为我们提供了一系列具有分布式特性的工具类。案例演示pom.xml<pac
2021-08-15 12:58:35
695
原创 【自用】自定义Vim编辑器配置文件
# 编辑vim配置文件vim /etc/vimrc复制以下代码到文件末尾处set nu " 设置行号set expandtab " 使用空格代替制表符set autoindent " 自动缩进set cindent " 自动缩进set smarttab " 智能缩进set tabstop=4 " 设置tab键的宽度为4个空格set softtabstop=4 " 设置统一缩进为4个空格se
2021-08-12 20:21:46
309
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人