自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

柳落青

记录美好代码生活

  • 博客(178)
  • 资源 (1)
  • 收藏
  • 关注

原创 MQ写满的情况如何处理?

*MQ(Message Queue)**写满的情况通常指消息队列中的存储空间已经被用尽,无法再接收新的消息。处理MQ写满的情况涉及到多个方面,包括监控、调整配置、增加资源、以及处理积压消息等。下面是一些处理MQ写满的。总的来说,处理MQ写满的情况需要综合考虑硬件资源、MQ配置、消息生产者和消费者的行为等多个因素,以保障系统的稳定运行。

2023-11-10 15:08:07 511

原创 RabbitMQ实现延时消息的两种方法

因此我们只需要在声明正常的业务队列时添加一个可选的"x-dead-letter-exchange"参数,值为死信交换机,死信就会被rabbitmq重新publish到配置的这个交换机上,我们接着监听这个交换机就可以了。如果当一个队列各个消息的过期时间不一致时,使用死信队列就可能达不到延时的作用。当我往死信队列中发送两条不同过期时间的消息时,如果先发送的消息A的过期时间大于后发送的消息B的过期时间时,由于消息的顺序消费,消息B过期后并不会立即重新publish到死信交换机,而是会等到消息A过期后一起被消费。

2023-06-21 16:18:48 4562 2

原创 Mybatis和SpringBoot 如何通过动态列查询

现在要编写一个查询方法,查询User表中符合条件的记录,**但是查询的列是动态的,即不确定查询哪些列,可以根据用户传入的参数决定。

2023-03-09 15:18:37 2603 2

原创 Java实现在10个亿数中,快速找出最小的十个数

具体来说,您可以使用一个最大堆(Max Heap)来存储当前已经找到的最小的10个数。最大堆可以保证堆顶元素是当前堆中最大的元素。当我们遍历这10亿个数时,如果遇到比堆顶元素小的数,我们就可以将它替换堆顶元素,并重新调整堆使得堆顶元素仍然是当前堆中最大的元素。在这个实现中,我们使用一个PriorityQueue来实现最大堆,使用Lambda表达式来自定义比较器,然后遍历数组中的所有数。否则,如果当前数小于堆顶元素,就把堆顶元素弹出,再把当前数加入堆中。最后,我们把堆中的元素依次弹出,即得到最小的k个数。

2023-02-19 23:50:42 726

原创 Java中LinkedList增删改比ArrayList快吗?

对于频繁的插入和删除操作,LinkedList 的性能通常更好,因为它使用了链表数据结构,只需更改节点的指针就可以在链表中插入或删除元素。下面是一个代码案例,展示了在 Java 中使用 LinkedList 和 ArrayList 进行插入和删除操作的时间差异。然而,如果你需要频繁的随机访问操作,ArrayList 的性能更快,因为它使用了数组数据结构,可以通过索引访问任何元素。在 Java 中,LinkedList 和 ArrayList 的性能是不同的,具体取决于你所需要的操作。

2023-02-09 23:06:21 573

原创 单例池 / 单例Bean / 单例模式的有什么区别?

是指每次创建的对象都是同一个。单例模式是指在一个JVM进程中仅有一个实例,而单例bean是指在一个Spring Bean容器(ApplicationContext)中仅有一个实例。spring源码中的定义为Map singletonObjects = new ConcurrentHashMap(256)。spring容器中可以有多个beanName不同,但是类型相同的bean。例如,可以有beanName分别为user1和user2,对应的类型都是User。

2023-02-08 16:53:09 147

原创 Jsoup简单入门

Jsoup就是解析网页的URL地址、HTML文本内容,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

2023-02-02 21:11:40 299

原创 Thymeleaf返回带有锚点的视图

在使用Thymeleaf时遇到了以下问题。我需要返回一个带有锚标记的视图,即。不能返回带有锚点的视图名称(浏览器已经知道它在这个过程中要去的url )。但是可以返回一个带有锚点的重定向。

2023-01-04 09:41:11 142

原创 SpringBoot整合Groovy脚本语言

Groovy 是增强 Java 平台的唯一的脚本语言。它提供了类似于 Java 的语法,内置映射(Map)、列表(List)、方法、类、闭包(closure)以及生成器。脚本语言不会替代系统编程语言,两者是相互补充的。大名鼎鼎的 Gradle,背后是 Groovy。Spring 的未来越来越多的使用 Groovy,甚至在用 Jira 跟踪项目时,背后也有 Groovy。实际上,就应用场景而言,Java 开发已经有越来越多的 Groovy 出现在后台了。

2022-12-12 10:31:54 875

原创 SSRF漏洞JAVA解决方案

SSRF(Server-side Request Forge, 服务端请求伪造)。由攻击者构造的攻击链接传给服务端执行造成的漏洞,一般用来在外网探测或攻击内网服务。

2022-09-16 15:48:22 3520

原创 postgresql锁表问题

postgresql锁表问题

2022-08-16 17:38:17 837

原创 Java 敏感词过滤工具类及文本

很简单

2022-08-08 10:14:52 771 9

原创 sun.misc.BASE64Encoder 报错 找不到

sun.misc.BASE64Encoder等类不属于JDK标准库范畴,但在JDK中包含了该类,可以直接使用。使用java.util.Base64替换sun.misc.BASE64Encoder。项目报错找不到sun.misc.BASE64Encoder。

2022-07-21 22:11:51 3399

原创 nginx配置ssl实现https访问 亲测有效

别说,这腾讯里面申请还挺快的,十多分钟就通过了。下载的是一个zip文件,解压后打开里面的Nginx文件夹,把。我的配置文件在/ect/nginx,现在把刚才的两个证书文件复制过来,待会直接配置使用就行了。nginx的配置文件是nginx.conf,里面的配置内容有以下,为了容易明白,我都加上了注释。为了更好管理,我们还是在最后一行声明的/etc/nginx/conf.d文件夹里进行子项目配置。复制代码重启后再次访问自己的网站,左上角加上锁,提示安全的连接。妥妥的,这个过了后就能重启nginx生效了。...

2022-07-20 17:21:39 636

转载 Java中使用Cookie

cookie就是一个小体积的键值对,格式key=value;

2022-07-15 15:22:52 2415

原创 LDAP连接池 JAVA

都应该使用过数据连接池,例如druid,c3p0大致原理差不多,刚开始使用还是麻烦的,网上的文档什么信息都不全,找了好久自己研究才搞明白。使用起来也挺简单的,就当作一个service来用,把ldapTemplate注入进来。连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用。很多配置官网都有,我就是使用了默认的配置。版本就是随着springBoot来吧。2.配置连接池数据源。......

2022-07-15 15:19:04 616

原创 jdk11新特性一文详解

我们看一下JAVA11的新特性字符串API增强在Java 11中,针对String的操作进一步得到加强。避免我们在很常见的场景中引入额外的、复杂的API。isBlank()用来判断字符串是不是空字符"“或者trim()之后(” ")为空字符:lines()将一个字符串按照行终止符(换行符\n或者回车符\r)进行分割,并将分割为Stream流:strip()去除字符串前后的“全角和半角”空白字符:从上面也看出来了差别,trim()只能去除半角空白符。strip()方法还有两个变种,stripL

2022-07-13 09:58:36 1778

原创 解决mysql8.0 GROUP BY报错

解决mysql8.0 GROUP BY报错

2022-07-07 19:02:54 2111 1

原创 SpringBoot参数校验以及分组校验的使用

一 前言做web开发有一点很烦人就是要对前端输入参数进行校验,基本上每个接口都要对参数进行校验,比如一些非空校验、格式校验等。如果参数比较少的话还是容易处理的一但参数比较多了的话代码中就会出现大量的if-else语句。使用这种方式虽然简单直接,但是也有不好的地方,一是降低了开发效率,因为我们需要校验的参数会存在很多地方,并且不同地方会有重复校验,其次降低了代码可读性,因为在业务代码中掺杂了太多额外工作的代码。所以我们可以使用validator组件来代替我们进行不必要的coding操作。本文基于vali

2022-04-29 10:20:02 1272 1

原创 SpringBoot配置文件敏感信息加密

jasypt开源地址:asypt-spring-boot官网:http://www.jasypt.orgjasypt的使用引入依赖gradle:compile group: 'com.github.ulisesbocchio', name: 'jasypt-spring-boot-starter', version: '3.0.4'maven:<dependency> <groupId>com.github.ulisesbocchio</groupId&

2022-04-14 14:53:42 936

原创 mysql查询自定义自增列语句

mysql查询自定义自增列语句select (@i:=@i+1)pm,s.* from u_user s,(select @i:=0)t where s.status='1'

2022-04-12 16:55:52 1148

原创 EasyExcel获取excel文件中sheet页总数,及对应sheet页名称及下标

/** * 获取excel文件所有sheet页 * * @param inputStream * @return java.util.List<com.alibaba.excel.read.metadata.ReadSheet> * @author * @date 2022/3/29 11:09 上午 */ public static List<ReadSheet> listSheet(InputStre

2022-03-29 16:15:31 2464

原创 SpringBoot实现文件下载的几种方式

将文件以流的形式一次性读取到内存,通过响应输出流输出到前端/*** @param path 想要下载的文件的路径* @param response* @功能描述 下载文件:*/@RequestMapping("/download")public void download(String path, HttpServletResponse response) {try {// path是指想要下载的文件的路径File file = new File(path);log.info(fi.

2022-03-29 16:04:51 6282

原创 一文详解Optional解决NullPointerException

避之不及的 NullPointerExceptionNPE : NullPointerException空指针异常是最常见的Java异常之一,抛出NPE错误不是用户操作的错误,而是开发人员的错误,应该被避免,那么只能在每个方法中加入非空检查,阅读性和维护性都比较差。以下是一个常见的嵌套对象:一个用户所拥有的汽车,以及为这个汽车配备的保险。public class User { private String userName; private Car car; publi

2022-02-22 17:17:41 1022

原创 Java实现本地缓存

对于缓存的作用不言而喻,可以提高查询效率,比去DB查询的速度要快。项目中我们经常会使用Nosql数据库,如Redis等做缓存。但是对于数据量很小的,访问非常频繁的,我们也可以存在本地缓存中。我将利用concurrentHashMap等集合容器实现一个本地缓存。1.基于concurrentHashMap的本地缓存。本地缓存一般使用键值对方式的存储,那么在Java中肯定是选用map,由于concurrentHashMap的线程安全性,所以就选择了这个。过期策略采用的定时清除,实现方式可以后台起一个线程去扫,

2022-02-15 13:38:16 12162 3

原创 Mac下多版本JDK安装及管理

Mac下多版本JDK安装及管理在Java项目中,经常对JDK版本有不同的要求,可是不可能为了某个项目的运行重新下载不同版本JDK进行安装,这样就涉及到对本地环境中多个JDK版本的管理。Mac的JDK都是安装到一个指定目录的:/Library/Java/JavaVirtualMachines/,因此可以在这个目录下查看自己安装的所以JDK:由此可见本系统中安装了8、13、15、17三个版本。对于JDK的安装可以直接到官网下载Mac需要的dmg安装包。如截图:接下来就是配置环境变量并进行JDK版

2022-02-12 11:57:37 755

原创 Java递归实现多级菜单

数据库设计我们在设计数据库的时候仅仅使用一张表就可以把上面的关系给捋清楚,就是通过一个parentid字段,让我们开看一下这张表的表结构看一下建表语句DROP TABLE IF EXISTS menu; CREATE TABLE menu ( id int(11) NOTNULL AUTO_INCREMENT COMMENT ‘主键递增’, name varchar(255) CHARACTERSET utf8 COLLATE utf8_general_ci NULL DEFAULT

2021-11-09 14:40:20 2082 6

原创 cookie、session和token登陆状态保持

传统的实现登录状态保存的两种方法时直接保存服务器端session 和客户端cookie, 现在介绍一种通过生成token的方式保存登录信息。实现登录状态保持的两种方法:第一种,cookie和session的配合使用实现原理:当用户请求页面,一般需要先登录,用户第一次输入用户名和密码之后,前台发送post请求,后台获取用户信息,通过查询数据库来验证用户信息是否正确,如果验证通过,则会开辟一块session空间来储存用户数据,并且同时生成一个cookie字符串,由后台返回给前台,前台接收后,会把这个coo

2021-10-29 16:31:19 771

原创 解决阿里云OSS,打开图片地址直接预览

问题描述:阿里云对象存储上传的图片打开是下载,并不是我想要的效果,我希望的是可以直接预览:可以直接在网址上面查看的那种。首先你得检查一下你的图片contentType,一般是通过代码设置的,直接在阿里云上传的图片,返回的url链接是直接下载的。我们使用代码上传,只需要看看你的代码里面上传图片的类型。一、上代码1.设置类型代码如下(示例):ObjectMetadata objectMetadata = new ObjectMetadata();objectMetadata.setContentTy

2021-09-02 11:57:59 13849 10

原创 spring事务处理

在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解是不会生效的。比如,下面代码例子中,有两方法,一个有@Transational注解,一个没有。如果调用了有注解的addPerson()方法,会启动一个Transaction;如果调用updatePersonByPhoneNo(),因为它内部调用了有注解的addPerson(),如果你以为系统也会为它启动一个Transaction,那就错了,实际上是没有的。@Servicepublic class Per

2021-09-02 09:43:59 140

原创 SpringBoot + Flowable的基础使用

Flowable是一个流行的轻量级的采用Java开发的业务流程引擎。通过Flowable流程引擎,我们可以部署BPMN2.0的流程定义(一般为XML文件),通过流程定义创建流程实例,查询和访问流程相关的实例与数据,等等。Flowable可以灵活地添加到我们的服务、应用、架构中,可以通过引入Flowable jar包,或者直接使用Flowable的Rest API来进行业务流程引擎的操作。Flowable是基于Activity5.0的一个分支开发的,因此内部的很多概念都相似。我用的IDEA创建SpringBo

2021-09-01 16:28:44 6291 1

原创 Cannot load C:\Users\12778\AppData\Local\JetBrains\IntelliJIdea2021.1\tomcat\c0cf5d96-4221-48ee-b343

Cannot load C:\Users\12778\AppData\Local\JetBrains\IntelliJIdea2021.1\tomcat\c0cf5d96-4221-48ee-b343-df017d7dad36\conf\server.xml: ParseError at [row,col]:[154,7] Message: 元素类型 “Host” 必须后跟属性规范 “>” 或 “/>”Tomcat出现问题了:第一种解决方案:按照提示路径去修改\tomcat\c0cf5d9

2021-05-12 11:19:12 3699 1

原创 SpringBoot指定配置文件启动项目

一. ide下的springboot启动springboot项目有如下配置文件有一个主配置文件application.yml, 在主配置文件里指定实际使用的配置文件公共配置server: port: 8080 servlet: context-path: /设置指定配置文件生效, 指定application-dev.yml的配置文件生效spring: profiles: active: dev直接在@SpringBootApplication注解下的main方法启

2021-05-06 14:03:00 11437

原创 mysql查询最近一周的每天的数量

select a.click_date,ifnull(b.count,0) as countfrom ( SELECT curdate() as click_date union all SELECT date_sub(curdate(), interval 1 day) as click_date union all SELECT date_sub(curdate(), interval 2 day) as click_date union all

2021-04-13 14:49:54 1506

原创 nacos快速开始

curl -X POST 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'

2021-03-18 10:25:29 348

原创 BeanUtils.copyProperties进行对象之间的属性赋值

使用org.springframework.beans.BeanUtils.copyProperties方法进行对象之间属性的赋值,避免通过get、set方法一个一个属性的赋值源码: /** * 对象属性拷贝 <br> * 将源对象的属性拷贝到目标对象 * * @param source 源对象 * @param target 目标对象 */ public static void copyProperties(Object

2021-03-18 09:58:45 231

原创 StringRedisTemplate和RedisTemplate的区别和使用场景

RedisTemplate看这个类的名字后缀是Template,如果了解过Spring如何连接关系型数据库的,大概不会难猜出这个类是做什么的 ,它跟JdbcTemplate一样封装了对Redis的一些常用的操作,当然StringRedisTemplate跟RedisTemplate功能类似那么肯定就会有人问,为什么会需要两个Template呢,一个不就够了吗?其实他们两者之间的区别主要在于他们使用的序列化类。RedisTemplate使用的是 JdkSerializationRedisSerialize

2021-03-18 09:53:03 3036

原创 JVM理解

Java面试题(JVM篇)JVM1.说一下 jvm 的主要组成部分?及其作用?类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface)组件的作用: 首先通过类加载器(ClassLoader)会把 Java 代码转换成字节码,运行时数据区(Runtime Data Area)再把字节码加载到内存中,而字节码文件只是 JVM 的一套指令集规范,并不能直接交个底层操作系统去执行,因此

2021-02-23 23:20:56 120

原创 JSR-303 Bean Validation API概述以及验证

JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。JSR 303 基本的校验规则空检查@Null 验证对象是否为null@NotNull 验证对象是否不为null, 无法查检长度为0的字符串@NotBlank 检查约束字符串是不是Null还有被Trim的长

2021-01-19 12:03:13 327

原创 lombok注解

在代码中我们可以只加上注解@Data 而不用get,set方法;以下是常用注解详情:@NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常, throw new NullPointException(参数名)@Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法@Getter/@Setter : 注解在类上, 为类提供读写属性@Getter(lazy=true) :@ToString : 注解在类上, 为类提供 toString() 方

2020-12-10 14:00:57 168

使用C#开发Ktv小项目-结业

ktv小项目,界面精美,功能齐全,有需要的可以进行下载参考,目前功能可以正常点歌,切歌,重播。前后端都有,由于上传资源限制,建议私聊我,发素材图片以及MV。

2020-04-30

空空如也

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

TA关注的人

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