自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java stream流实现List<对象>通过对象中的多个字段去重

从Java 8开始,我们可以使用Stream API来更方便地处理集合。本文将演示如何使用Java Stream流对List进行多重字段去重

2023-12-14 16:15:27 1454

原创 微服务Redis分布式锁配置成注解使用(AOP)

在分布式系统中,因为每个进程或机器都是独立的,它们之间并不能共享同一个锁,因此需要通过一些方法来实现锁的协调。而 Redis 分布式锁就是一种基于 Redis 实现的分布式锁算法,它可以让多个进程或机器安全地共享同一个锁,从而协调它们的执行顺序和时间。它的主要作用是在多个进程或多台机器之间协调执行某个任务,以保证任务的正确性和一致性。

2023-09-13 09:53:02 1021 1

原创 Java设计模式之建造者模式详解(Builder Pattern)

构建者模式是一种非常有用的设计模式,尤其适用于创建具有很多属性的复杂对象。通过链式调用的方式来设置对象的属性,使得代码更加清晰和易于阅读。同时,将对象的构造和表示分离开来,使得我们可以灵活地改变对象的创建过程。然而,对于简单的对象,使用构建者模式可能会过度复杂化代码,因此在使用时需要权衡利弊。总的来说,掌握好构建者模式,可以让我们的代码更加清晰、易于维护和理解

2023-09-09 10:53:27 739

原创 Java数字转中文大写工具类(拿去即用)

Java数字转中文大写工具类: 包括数字转中文大写形式,比如一百二十一;数字转金额用的大写形式,比如:壹佰贰拾壹;转金额形式,比如:壹佰贰拾壹整

2023-08-31 10:42:10 3507 1

原创 Java设计模式之单例模式详解(懒汉式和饿汉式)

在开发工作中,有些类只需要存在一个实例,这时就可以使用单例模式。单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点。本文将介绍Java单例模式的概念、具体的实现方式,给出示例代码,并探讨单例模式的使用场景和注意事项。

2023-07-26 17:18:18 3554 1

原创 restTemplate发送https请求报错I/O error on POST request for “xxxx“: Remote host terminated the handshake解决

最近在项目开发中遇到了一个问题,用restTemplate调用https接口的时候一直掉不通,报错I/O error on POST request for “xxxx”: Remote host terminated the handshake;

2023-05-06 12:10:54 19722 1

原创 Oracle查询去掉小数后面多余的0

使用Oracle查询的时候,可能会出现小数后面有多余的0,比如3.142000,如果需要去掉的话可以进行,处理后就是3.142,这里使用了函数TRIM,主要作用是删除字符串开头或结尾的空格或指定的字符

2023-03-22 14:54:58 3828

原创 Java实现乐观锁和悲观锁

在 Java 并发编程中,乐观锁和悲观锁都是常用的并发控制机制。乐观锁通常是通过 CAS(Compare and Swap)算法实现的,CAS 算法在 JDK 中提供了相应的原子类,如 AtomicInteger、AtomicLong、AtomicReference 等。悲观锁通常是通过 synchronized 关键字或者 Lock 接口及其实现类来实现的。

2023-03-16 16:24:04 1714

原创 IDEA通过数据库表自动生成实体类(EasyCode)

IDEA自动生成实体类插件EasyCode,真香啊~ 只要配置了数据库,就可以通过数据库表格自动生成实体类。详细配置教程

2023-03-10 15:30:48 8281 1

原创 Springboot之@Async异步指定自定义线程池使用

开发中会碰到一些耗时较长或者不需要立即得到执行结果的逻辑,比如消息推送、商品同步等都可以使用异步方法,这时我们可以用到`@Async`。但是直接使用 @Async 会有风险,当我们没有指定线程池时,他会默认使用其Spring自带的 SimpleAsyncTaskExecutor 线程池,会不断的创建线程,当并发大的时候会严重影响性能。所以可以将异步指定线程池使用。

2023-03-06 19:55:40 4029

原创 Spring中@Transactional事务失效原因

Transactional 注解的作用就是保证方法内的多个数据库操作具有事务特性,即要么都成功提交,要么都失败回滚。但是错误的使用会导致事务失效,这里总结了九种可能发生事务失效的原因。

2023-01-30 14:15:00 1434

原创 并发场景使用SimpleDateFormat异常问题和解决

SimpleDateFormat类主要是负责日期的格式化与转换操作,因为它不是线程安全的,所以使用SimpleDateFormat时,务必确保同一个SimpleDateFormat对象不要与其他线程共享,否则并发情况下会出现问题

2023-01-16 15:10:29 772

原创 Java多线程之读写锁ReentrantReadWriteLock类使用

在JDK中提供了一种读写锁ReentrantReadWriteLock类,相比ReentrantLock类,使用前者可以加快运行效率。ReentrantLock类是具有完全互斥排他的效果,即同一时间只有一个线程在执行ReentrantLock.lock()方法后面的任务,这样做虽然保证了实例变量的线程安全性,但效率却是非常低下的。所以在某些不需要操作实例变量的方法中,完全可以使用读写锁ReentrantReadWriteLock来提升该方法的代码运行速度。

2023-01-12 11:26:02 550

原创 vue+elementUI实现表格中点击图片预览大图功能

说起预览大图,最先想到的肯定是ElementUI中的开启大图预览,但是它的存储类型数组,如果我们需要在表格中点击某一行的某张图片就显示它的大图,就不是很好实现;所以这里我直接写了一个弹框组件来显示大图,效果也不错,可以用于审核证件时查看证件等场景。

2022-10-19 10:59:45 5197 2

原创 springboot配置swagger2生成Api文档

在前后端分离开发中,Swagger2可以帮助开发人员设计、构建、记录和使用RESTful Web服务,仅用注解就可以将代码和文档融为一体,大大减少了与其他团队的沟通成本。下面我们用SpringBoot来配置swagger2。

2022-09-20 14:44:41 1232 3

原创 Java实现生成和校验图片验证码(详细)

验证码校验是日常中很常见的场景,工作中难免会遇到了生成和校验验证码这样的需求,可以用Hutool工具类;hutool生成图片验证码的核心接口是ICaptcha,此接口定义了以下方法:createCode 创建验证码,实现类需同时生成随机验证码字符串和验证码图片getCode 获取验证码的文字内容verify 验证验证码是否正确,建议忽略大小写write 将验证码写出到目标流中

2022-09-08 15:57:50 11402 1

原创 JSP内置对象详解(笔记)

JSP九大内置对象:request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例response对象response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它。它是HttpServletResponse类的实例

2022-08-17 10:49:11 201

原创 npm install时报错Host key verification failed以及其他问题(已解决)

npm install时报错Host key verification failed和fatal: unable to access 'https://github.com/nhn/raphael.git/': Failed to connect to github.com port 443: Timed out问题解决

2022-08-08 14:47:42 4118 4

原创 Redis分布式锁Redisson+RLock方法使用详解

基于新的Redis客户端Redisson的锁实现RLock

2022-08-03 14:31:24 5701

原创 Java之使用递归查询多级树形结构数据(2)

上一篇文章里说到使用递归查询多级树形结构数据,后来我想了一下,对于一直循环访问数据库还是不推荐,于是这篇文章对递归查询做了一些优化;既然不要循环访问数据库,那么我们就可以一次把所有数据查出来存到`List`集合里,再通过`递归`List把数据存到另一个List也是一个道理,下面上代码...

2022-07-06 10:15:27 2762 7

原创 Java之使用递归查询多级树形结构数据

Java之使用递归查询多级树形结构数据;工作中可能会碰到一个表中存在父子关系,需要查询多级结构的树形数据场景(如图1-1),因此我们可以使用递归来实现

2022-07-05 11:40:46 8017 9

原创 nodejs切换版本使用(不需要卸载重装)

在工作中有时候遇到不同的项目所要求的node版本不同,这种情况我们就需要来回切换node的版本,如果卸载重装的话会非常麻烦,而且可能导致文件删除不干净,经过踩雷之后,总结一下nodejs如何切换版本使用...

2022-06-16 11:42:09 11238 12

原创 windows环境安装启动zookeeper和kafka

kafka是一个分布式的基于发布/订阅模式的消息队列,主要应用于大数据实时处理领域本文主要介绍windows环境安装启动zookeeper和kafka

2022-05-19 18:12:12 1564

原创 解决AJAX发送请求成功却接收不到返回参数问题

今天开发过程中碰到的一个问题, 提交表单的时候使用ajax发送请求成功, 数据也添加进去了, 但是确没有收到返回, 页面就自动刷新了原因<button type="submit" onclick="updateSubmit()" class="btn btn-primary">提交</button>这里的提交按钮type为submit, submit会强制刷新页面, 因为页面被刷新了, 那么ajax返回的信息来到了一个新的页面, 那返回的信息自然是接收不到的解决<b

2022-05-10 14:15:53 4267

原创 SpringBoot项目打包成jar包部署到宝塔面板(详细)

购买了腾讯云轻量级服务器之后, 可以使用宝塔面板快捷操作服务器, 本文将演示SpingBoot项目打包成jar包后部署到宝塔面板并访问

2022-05-09 15:47:38 7903 2

原创 Java实现复制文件(文件、文件夹)

Java复制文件主要是File工具类中`listFiles()`方法先列出文件夹中的文件, 然后使用`BufferedInputStream`缓冲输入流接收要复制的文件, 再用`BufferedOutputStream`缓冲输出流的`write()`方法写入文件

2022-04-28 15:15:10 7452

原创 vue+elementUI下拉框回显问题解决

在开发过程中, 总会做到修改功能, 但是在修改回显的时候, 发现下拉框始终回显的是id而不是文本,下面看案例

2022-04-25 13:53:52 9417 1

原创 Vue+ElementUI做一个批量新增的动态表单(增加/删除表单)

Vue+ElementUI做一个批量新增的动态表单包括增加、删除表单

2022-04-19 14:15:46 8392 9

原创 Java实现数组和List之间的转换

Java中数组和List之间的相互转换实例

2022-04-18 10:24:43 1218

原创 Java将字符串反转的几种方式

使用 StringBuilder 或 StringBuffer 的 reverse 方法(需要JDK1.8)不考虑字符串中的字符是否是 Unicode 编码,自己实现。使用递归方法

2022-04-11 12:06:20 13150

原创 使用SpringBoot实现邮件发送

邮件发送是一个非常常见的功能,注册时的身份认证、重要通知发送等都会用到邮件发送。Sun公司提供了JavaMail用来实现邮件发送,但是配置烦琐,Spring中提供了JavaMailSender用来简化邮件配置,Spring Boot则提供了MailSenderAutoConfiguration对邮件的发送做了进一步简化。下面就来看看Spring Boot中如何发送邮件。发送前的准备以QQ邮箱为例,首先要申请开通POP3/SMTP服务或者IMAP/SMTP服务。SMTP全称为Simple MailTr.

2022-04-07 17:20:41 9784 4

转载 vue如何每次打开子组件弹窗都进行初始化

:visible.sync 与 v-if同时使用即可。

2022-04-01 15:49:14 1452

原创 Java循环中List添加元素把前面的元素被覆盖问题

关于Java循环中List添加元素到后面把前面的元素都覆盖了的问题解决

2022-03-28 17:09:20 4801 1

原创 SpringBoot实现定时任务的两种方式(详细)

定时任务是企业级开发中最常见的功能之一,如定时推送短信和邮件、数据库备份、定时统计收益、定时统计访客等,简单的定时任务可以直接通过Spring中的@Scheduled注解来实现,复杂的定时任务则可以通过集成Quartz来实现,本文将分别介绍@Scheduled注解和集成Quartz

2022-03-28 10:00:00 3306

原创 Oracle触发器语法和执行次序详解

触发器(trigger): 是根据数据的机制来触发的行为, 不能主动执行, 也不能接收参数

2022-03-24 11:09:28 1940

转载 nginx 负载均衡的几种算法

nginx 负载均衡的几种算法

2022-03-23 17:18:40 4283

原创 Java使用EasyExcel实现常规的Excel导入导出(详细)

记录一次用EasyExcel实现Excel导入导出以前工作中实现Excel操作都是用的公司封装好的功能或者用JXL和POI,最近发现了一款excel操作神器EasyExcel,看了源码之后是真香啊,用起来简直不要太爽!

2022-02-12 11:06:31 30684 39

转载 sql优化的15个小技巧

sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。这篇文章从15个方面,分享了sql优化的一些小技巧,希望对你有所帮助。

2022-02-10 14:47:00 718 1

原创 Java如何避免sql注入详解

sql注入是web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息、利用数据库的特性执行添加用户、导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。造成sql注入的原因:程序没有有效过滤用户的输入,使攻击者成功的向服务器提交恶意的SQL脚本,程序在接收后错误的将攻击者的输入作为SQL语句的一部分执行,导致原始的查询逻辑被改变,执行了攻击者精心构造的恶意SQL语句。如从用户表根据用户名admin和密码123查用户信息select * from User where

2022-01-12 11:07:21 9010 1

原创 SpringBoot实现文件上传功能(单文件、多文件)

Spring MVC对文件上传做了简化,而在Spring Boot中对此做了更进一步的简化,文件上传变得更为方便,下面开始演示单文件上传首先创建一个Spring Boot项目,并添加spring-boot-starter-web依赖然后创建一个upload.jsp文件,做一个简单的文件上传页面,具体代码如下:<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><hea

2022-01-05 17:09:06 3116

SpringBoot-MyBatis-MySQL-jsp 企业考勤管理系统源码

介绍: 基于SpringBoot-MyBatis-MySQL-Layui开发的学生版企业考勤管理系统完整代码; 可供练习和毕业设计学习参考。分别为员工打卡系统和企业考勤管理两个系统。其中企业考勤管理系统主要功能包括: 员工信息管理、考勤信息管理、考勤统计、操作日志信息、登录日志信息、系统用户管理等功能。内置SQL脚本 开发环境: JDK 1.8、Maven latest、Spring Boot 2.4.5、Intellij IDEA、mysql 5.7、git 、layui 使用说明: 本地登陆地址:localhost:8099/web/jsp/login.jsp 项目不要修改项目名称和注意存放路径,否则会发生报错情况 需要修改SpringBoot配置文件application.yml数据库配置,修改成你的数据库地址和访问用户 本项目仅用于学习练习, 可作为毕业设计参考, 希望可以帮到您 目前云服务器已过期,暂无演示地址

2022-03-29

空空如也

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

TA关注的人

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