- 博客(83)
- 资源 (17)
- 收藏
- 关注
原创 Java的Duration类:掌握时间间隔的魔法
在Java编程中,处理时间间隔是一项常见任务。Java 8引入了Duration类,提供了方便的方法来处理和计算时间间隔。本文将介绍Duration类的定义、常见用法以及与其他时间类的比较。
2024-08-07 14:46:24
674
原创 Java LocalDateTime 的常用方法总结
/ 自定义格式化:System.out.println("自定义格式dtf1: " + dtf1.format(LocalDateTime.now()));//自定义格式dtf1: 2024/08/05 17:19:50System.out.println("自定义格式dtf2: " + dtf2.format(LocalDateTime.now()));//自定义格式dtf2: 2024.08.05 17:19:50。
2024-08-05 17:26:17
267
原创 Java各类日期和时间转换超强总结(Date和LocalDateTime相互转换等)
大家在开发过程中必不可少得和日期打交道,对接别的系统时,时间日期格式不一致,每次都要转换!从 Java1 到 Java8 将近 20 年,再加上 Java8 的普及时间、各种历史 API 兼容过渡时间。我们很多时候需要在旧时间 API 与新时间 API 之间切换,并行使用!!!每次写完就忘记了,小编专门来整理一篇来详细说一下他们转换的方法,方便后面使用!!
2024-08-03 17:44:51
506
原创 【SpringBoot】 定时任务之任务执行和调度及使用指南
本文将着重介绍Spring中的TaskExecutor接口、TaskScheduler接口、Trigger接口以及Spring中定时任务的任务执行和调度以及开发中的正确使用姿势。
2024-08-03 11:36:24
978
原创 SpringCloud之@FeignClient()注解的使用方式
是 Spring Cloud 中用于声明一个 Feign 客户端的注解。由于SpringCloud采用分布式微服务架构,难免在各个子模块下存在模块方法互相调用的情况。比如订单服务要调用库存服务的方法,@FeignClient()注解就是为了解决这个问题的。Feign 是一个声明式的 Web Service 客户端,它的目的是让编写 HTTP 客户端变得更简单。通过 Feign,只需要创建一个接口,并使用注解来描述请求,就可以直接执行 HTTP 请求了。
2024-07-24 16:54:11
1008
原创 Kafka系列之如何提高消费者消费速度
在实际开发过程中,如果使用Kafka处理超大数据量(千万级、亿级)的场景,Kafka消费者的消费速度可能决定系统性能瓶颈。
2024-07-22 16:17:17
730
原创 SpringBoot使用Redisson操作Redis及使用场景实战
从 spring-boot 2.x 版本开始,spring-boot-data-redis 默认使用 Lettuce 客户端操作数据。
2024-07-11 15:46:34
2038
原创 SpringBoot使用RedisTemplate、StringRedisTemplate操作Redis
本文实现了在SpringBoot中集成Redis,使用RedisTemplate对象操作并编写了一些常用方法的工具类。RedisTemplate和StringRedisTemplate的区别:1. 两者的关系是StringRedisTemplate继承RedisTemplate。////this();
2024-07-10 15:03:04
1564
原创 kafka系列之offset超强总结及消费后不提交offset情况的分析总结
消费端如果没有提交offset,程序不会阻塞或者重复消费,除非在消费到这个你没有提交offset的消息时你新增或者减少消费端,此时会发生rebalance现象,即可再次消费到这个未提交offset的数据,产生重复消费问题。如果在消费的过程中有几条或者一批数据数据没有提交offset(比如异常情况程序没有走到手动提交的代码),后面其他的消息消费后正常提交offset至服务端,那么服务端会更新为消费后最新的offset,不会重新消费,就算重启程序或者rebalance也不会重新消费。
2024-07-05 17:37:30
979
原创 Kafka系列之@KafkaListener常用参数详解
KafkaListener 注解提供了许多可配置的参数,以便更灵活地定制 Kafka 消息监听器的行为。
2024-07-05 11:33:14
991
原创 Kafka系列之Kafka知识超强总结
Kafka 集群包含一个或多个服务器,服务器节点称为broker。broker存储topic的数据。如果某topic有N个partition,集群有N个broker,那么每个broker存储该topic的一个partition。如果某topic有N个partition,集群有(N+M)个broker,那么其中有N个broker存储该topic的一个partition,剩下的M个broker不存储该topic的partition数据。
2024-07-04 10:05:36
1269
原创 mybatis配置返回boolean类型
在业务开发中,我们可能会遇到这样的需求:在对数据进行操作时,先判断有没有对应的记录,如果有,再进行操作。实现的方式有多种,现针对mybatis的实现进行说明。Mybatis是根据查询到的记录数进行转换的(1表示为true,0表示为false)。然而,如果查询到多条记录(大于1),则返回的布尔值为false。这个和mysql的版本有关系,故为了兼容版本我们可以考虑做如下sql改造使用。
2024-07-02 18:21:21
530
原创 mybatis之动态标签
有些时候,sql语句where条件中,需要一些安全判断,例如按性别检索,如果传入的参数是空的,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息。这是我们可以使用动态sql,增加一个判断,当参数不符合要求的时候,我们可以不去判断此查询条件。
2024-07-01 19:19:05
663
原创 MYBATIS大于等于、小于等于的写法
mybatis使用的是xml格式的文件。使用>和<号的时候,会存在与xml的标签的规范冲突。需要写成如下形式,否则会报错。
2024-06-27 11:31:03
895
原创 @Value 读取环境变量配置
Value属于spring的注解,在spring-beans包下,可以在 字段 或 方法参数 或 构造函数参数 上使用,通常用于属性注入。使用@Value(“${环境变量名}”)就可以直接读取到操作系统的环境变量,就算在properties或者yaml中指定同名属性值也会被系统环境变量值所覆盖,所以在平常自定义属性时避免与系统环境变量重名,最好加上前缀。比如,本地开发中,一些业务逻辑需要调用第三方代码,但又在本地调不通,怎么办。组件类,@Value必须在SpringBoot的组件中使用。
2024-05-31 14:47:30
665
1
原创 SpringBoot 项目打印mybatis日志
只用在application.yaml 中配置以下内容,即可将mybatis 的 SQL 日志打印出来。换成自己的mapper接口文件所在的包目录。
2024-05-24 10:34:23
153
原创 Swagger 详解
Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化RESTful风格的Web服务。总体来说,Swagger提供了一套标准的注解,开发者可以通过这些注解来描述他们的API,然后Swagger可以根据这些注解生成可交互的API文档。swagger2 最常用的5个注解。
2024-04-03 16:35:53
194
原创 JSR303参数校验与全局异常处理
我们在日常开发中,避不开的就是参数校验,有人说前端不是会在表单中进行校验的吗?在后端中,我们可以直接不管前端怎么样判断过滤,我们后端都需要进行再次判断, 为了安全。因为请求很容易绕过前端,比如当测试使用 PostMan 来发送请求,如果后端没有校验,不就乱了吗?肯定会有很多异常的。JSR-303规范(Bean Validation规范)提供了对 Java EE 和 Java SE 中的 Java Bean 进行验证的方式。该规范主要使用注解的方式来实现对 Java Bean 的验证功能。
2024-03-14 18:04:40
967
原创 统一异常处理ControllerAdvice
在我们日常的开发过程中,通常会根据业务定义属于自己的异常,所以通过定制自己的异常处理器,来处理项目中大大小小、各种各样的异常。1、@ExceptionHandler注解标注的方法:用于捕获Controller中抛出的不同类型的异常,从而达到异常全局处理的目的;首先,ControllerAdvice本质上是一个Component,因此也会被当成组件扫描,一视同仁,扫扫扫。3、@InitBinder注解标注的方法:用于请求中注册自定义参数的解析,从而达到自定义请求参数格式的目的;
2024-03-14 16:22:05
457
原创 消息防骚扰方案设计
小时是精确防骚扰,当天的过期时间是自然天,即当前时间到晚上23:59:59,月有大小月之分,大月31天,小月30天,没必要精准区分,都以30天为准。修改可能不会立即生效,等待五分钟之后再起作用。
2024-03-06 10:58:52
166
原创 MySql的CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP
CURRENT_TIMESTAMP,则无论这个字段有木有set值都插入当前系统时间。在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它。在创建新记录的时候把这个字段设置为0,以后修改时刷新它。表示每次更新这条数据的时候,该字段都会更新成当前时间。在创建新记录和修改现有记录的时候都对这个数据列刷新。表示当插入数据的时候,该字段默认值为当前时间。TIMESTAMP的变体。
2024-03-06 10:51:38
349
原创 Java正则表达式以及Pattern和Matcher类详解
概述正则表达式一、概述用来描述或者匹配一系列符合某个语句规则的字符串二、单个符号1、英文句点.符号:匹配单个任意字符。表达式t.o可以匹配:tno,t#o,teo等等。不可以匹配:tnno,to,Tno,t正o等。2、中括号[]:只有方括号里面指定的字符才参与匹配,也只能匹配单个字符。表达式:t[abcd]n 只可以匹配:tan,tbn,tcn,tdn。不可以匹配:thn,tabn,tn等。3、| 符号。相当与“或”,可以匹配指定的字符,但是也只能选择其中一项进行匹配。表达式:t(a|b
2022-04-22 17:20:31
1055
原创 MySQL基础教程
一、 连接MySQL格式: mysql -h主机地址 -u用户名 -p用户密码1.1 连接到本机上的MYSQL首先打开命令窗口,然后进入目录mysql\bin,再键入命令mysql -uroot -p,回车后提示你输密码.注意:用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>1.2 连接到远程主机上的MYSQL假设远程主机的IP为:
2021-08-30 10:21:18
230
原创 【Java】 数组转 List 的三种方式及对比
本文介绍Java中数组转为List三种情况的优劣对比,以及应用场景的对比,以及程序员常犯的类型转换错误原因解析。一、 (最高效) 通过集合工具类Collections.addAll()方法,支持增删改查等方法通过Collections.addAll(arrayList, strArray)方式转换,根据数组的长度创建一个长度相同的List,然后通过Collections.addAll()方法,将数组中的元素添加到List中,这是最高效的方法。使用场景:需要在将数组转换为List后,对List进行增删改
2021-08-12 16:12:34
788
原创 线程的 run() 和 start() 的区别
线程的 run() 和 start() 有什么区别?调用 start() 方法是用来启动线程的,轮到该线程执行时,会自动调用 run();直接调用 run() 方法,无法达到启动多线程的目的,相当于主线程线性执行 Thread 对象的 run() 方法。一个线程对线的 start() 方法只能调用一次,多次调用会抛出 java.lang.IllegalThreadStateException 异常;run() 方法没有限制。总结: run() 方法相当于启动Thread类里面的一个普通方法, sta
2021-06-10 15:14:11
370
原创 java枚举比较使用equals还是==
建议使用==。避免NPE能正常工作更快运行时是安全的编译期也是安全的其实二者皆可以,没有任何问题。我们查看 Enum.java 中 equals 方法的源码,可以看到其也是使用 == 来实现。public final boolean equals(Object other) { return this==other;}额外答案能在枚举中使用 == 进行判断?答案是肯定的,因为枚举有着严格的实例化控制,所以你可以用 == 去做比较符,这个用法,在官方文档中也有明确的说明。
2021-06-08 15:49:06
2456
原创 JPA 中的 nativeQuery = true
在 JPA 的 @Query 注解中有个属性 nativeQuery其默认值是false。package org.springframework.data.jpa.repository;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPol
2021-06-03 20:25:09
2964
zepto中文API
2017-09-14
w3cschool中文API
2017-09-14
css4.0中文API
2017-09-14
jQuery中文API
2017-09-14
JavaScript中文API
2017-09-14
HTM5中文API
2017-09-14
bootstrap中文API
2017-09-14
angularJS中文API
2017-09-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人