- 博客(85)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 自定义SpringBoot Starter
✅自定义SpringBoot StarterSpringBoot 的 starter 可以帮我们简化配置,非常的方便,定义起来其实也不复杂,我的项目中定义了很多 starter,比如business-job就是一个 stater,以他为例,介绍下如何定义 starter:。
2025-02-24 21:07:19
396
原创 JDK 21 中虚拟线程的应用
而且,我们可以在应用程序中创建非常多的虚拟线程,而不依赖于平台线程的数量。这些虚拟线程是由JVM管理的,因此它们不会增加额外的上下文切换开销,因为它们作为普通Java对象存储在RAM中。他的实现原理其实是JDK不再是每一个线程都一对一的对应一个操作系统的线程了,而是会将多个虚拟线程映射到少量操作系统线程中,通过有效的调度来避免那些上下文切换。这里就是通过虚拟线程来进行短信的发送,代替了我们之前经常用的线程池技术。我们在项目中用到了虚拟线程来提升性能。
2025-02-17 22:28:12
126
原创 消息队列总结
你用过消息队列么?说说你们项目里是怎么用消息队列的?我们有一个订单系统,订单系统会每次下一个新订单的时候,就会发送一条消息到ActiveMQ里面去,后台有一个库存系统,负责获取消息,然后更新库存。为什么使用消息队列?你的订单系统不发送消息到MQ,而是直接调用库存系统的一个接口,然后直接调用成功了,库存也更新了,那就不需要使用消息队列了呀使用消息队列的主要作用是:异步、解耦、削峰消息队列都有什么优缺点?Kafka、activeMQ、RibbitMQ、RocketMQ都有什么优缺点?
2023-08-15 16:56:31
427
原创 ElasticSearch安装与介绍
如果没有听说过Elastic Stack,那你一定听说过ELK,实际上ELK是三款软件的简称,分别是Elasticsearch、 Logstash、Kibana组成,在发展的过程中,又有新成员Beats的加入,所以就形成了Elastic Stack。所以说,ELK是旧的称呼,Elastic Stack是新的名字。全系的Elastic Stack技术栈包括:选择对应版本的数据,这里我使用的是Linux来进行安装,所以就先下载好ElasticSearch的Linux安装包。
2023-08-14 18:24:13
351
原创 一文读懂ThreadLocal
在垃圾回收器线程扫描它 所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存。内部都是使用仅有的那个ThreadLocalMap存放数据的,ThreadLocalMap的 key 就是 ThreadLocal对象,value 就是 ThreadLocal对象调用set方法设置的值。弱引用可以和一个引用队列(ReferenceQueue)联合使用,如果弱引用所引用的对象被垃圾回收,Java 虚拟机就会把这个弱引用加入到与之关联的引用队列中。
2023-08-11 17:27:32
268
原创 IDEA直接请求controller,不用postman请求http接口
第二步、生成generated-requests.http文件。第一步:点击下面按钮,HTTP Client。第三步、更改服务的ip和端口,启动服务。
2023-05-17 17:03:36
4103
原创 spring启动报错:expected at least 1 bean which qualifies as autowire candidate. Dependency annotations:
用mybatisplus生成代码后启动springboot报错
2023-05-11 13:50:17
2751
转载 优雅实现List数据拷贝
确实为我们做了很多事情,虽然不能完美完成深拷贝,但是对于 po、vo、dto 的拷贝已经足够用了。但是其还是有一些不够完美的地方。①不能拷贝 list,而拷贝 list 的情况又大量存在,因此会有许多重复代码。②有一些简单的查询,仅仅需要转换一下 vo 也需要 new Vo()。return vo;③这种拷贝方式是没有返回值的,jdk8 支持 stream() 操作之后,支持不是很友好,不方便 lambda 表达式的使用,因此我们决定通过集成 BeanUtils 类,自己造一个方便用的轮子。
2023-04-10 15:43:21
574
原创 自定义注解,接收单个参数的post请求
因业务场景需要,有时需要区分get和post请求比如删除,尽量用post请求(公司规范为只使用get和post爱你请求)常用的删除:@Getmapping 后面加@PathVariable定义的注解名为:@FewPostParam源码如下:import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java
2022-05-18 13:56:11
1135
原创 Error instantiating class com.**.event.vo.EventStatusVo$EventStatusInfo with invalid types Cause: ja
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating class com.zrx.govern.event.vo.EventStatusVo$EventStatusInfo with invalid types (EventStatusVo) or values (事件登记). Cause: jav
2022-04-15 17:01:15
304
原创 使用git stash导致代码消失的解决方案
场景:切换分支想暂存代码git stash暂存代码本地修改的代码:使用git stash 暂存的时候,代码消失,一朝回到解放前。。。这种感觉很慌的,看了网上的解决方法 大致都是这样的:根本没有我暂存的记录,无语。。。我的解决方案:当前命令窗口中输入:git stash pop代码恢复了,吓我一跳...
2022-02-09 16:11:07
3844
3
原创 java新增后生成一定规则的流水号,字符串+当前日期+递增序号
我的业务需求:生成编号规则为 HSJC-年月日01、02、03一直累加如下图所示。默认为:HSJC-yyyyMMdd01在网上找了很多解决方案,个人觉得不太行,特地总结一下:1、写一个递增编号的方法/** * 轮次编号生成规则 * 1、如果当前时间没有核酸轮次,直接新增 ,默认为:HSJC-yyyyMMdd01 * 2、查询到有核酸轮次,查找当前那一天最大的轮次编号,自增1 * * @param code 当前最大编码 */ p
2021-09-23 17:18:41
12111
3
原创 字符串切分,stream,JSONObject,lambda表达式的应用
需求:把state字段对应数据切分,获取第一个数字作为状态,0代表离线,1代表在线下面是返回的数据,其中state的数据不是我们想要的:{ "status": "200", "message": "success", "error": null, "path": null, "timestamp": "2021-06-01 13:39:31", "data": [ { "dateTime": null,
2021-06-01 13:46:50
667
原创 微服务调用feign接口报错401的解决方案和原因总结
feign.FeignException$Unauthorized: [401 Unauthorized] during [GET] to [[http://xxx/xxx]报错详情:feign.FeignException$Unauthorized: [401 Unauthorized] during [GET] to [http://govern-traffic-law/eventAnalysis/evtRatioAnalysis?type=3&streetId=1] [ITrafficEv
2021-05-27 10:16:33
23155
3
原创 java-对象数组与对象对象
问题在于确定以下符号之间的权衡基于JSON:"users": { "id1": { "id": "1", "name": "zs", "age": "12" }, "id2": { "id": "2", "name": "zy", "age": "52" }}基于数组:users: [ { "id": "id", "key2":
2021-05-21 11:26:02
322
原创 org.springframework.beans.factory.UnsatisfiedDependencyException:解决方案
问题记录:org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'personnelStrengthController': Unsatisfied dependency expressed through field 'personnelStrengthService'; nested exception is org.springframework.beans.f
2021-05-18 15:52:16
8570
原创 解决mysql锁表问题com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceede
报错如下:在navicat中执行如下语句:1、查询是否锁表show open tables where in_use>0; 2、查询进程show processlist查询到相对应的进程,然后 kill id 3、查看正在锁的事务select * from information_schema.innodb_locks; 4、查看等待锁的事务select * from information_schema.innodb_lock_waits;找到锁表的进程:找
2021-05-18 10:21:40
13353
原创 sql模糊查询-根据时间段区间查询数据
业务需求:根据时间区间来筛选列表数据库对应的字段如下:sql语句如下:SELECTa.pre_machine_name,b.*,c.type_name,d.status_type FROM data_center_pre_machine a, data_center_pre_library b, dic_type c, dic_status d WHERE a.del_flag = 0 AND b.del_flag = 0 AND a.id = b.pre_machi
2021-05-13 14:32:21
1629
原创 mybatis的xml中新增语句,设置id为UUID
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.zrx.datacenter.presource.api.preLibrary.mapper.PreLibraryMapper">&
2021-05-12 17:16:37
1802
原创 解决Command line is too long. Shorten command line for SpringbootApp
1、问题描述Error running ‘Application’: Command line is too long. Shorten command line for Application or also for Spring Boot default configuration.报错详情如下:2、解决办法:找到这个选择如下成功
2021-03-11 20:02:34
977
2
原创 idea最常用的快捷键,写代码快到飞起
IDEA 常用的快捷键 !!!!! 赶快记下来-----------自动代码常用的有fori/sout/psvm+Tab即可生成循环、System.out、main方法等boilerplate样板代码例如要输入for(User user : users)只需输入user.for+Tab再比如,要输入Date birthday = user.getBirthday();只需输入user.getBirthday().var+Tab即可。代码标签输入完成后,按Tab,生成代码。Ctrl+Alt+O
2020-06-10 14:55:11
689
原创 CentOS7下MySQL5.7重置root密码方法
本文主要记录MySQL忘记root密码或者刚装MySQL后快速重置密码的方法,网上搜了很多,很乱,也没什么用,这个解决了我的问题,经过实践确实真实可用。1.编辑MySQL配置文件(跳过权限校验)[root@centos ~]# vim /etc/my.cnf在[mysqld]选项中添加skip-grant-tables属性,例:[mysqld]skip-grant-tables...
2020-04-14 22:10:40
1784
原创 8种数据类型和位、字节、比特的关系
字节,英文Byte,是计算机用于计量存储容量的一种计量单位,通常情况下一字节等于八位,字节同时也在一些计算机编程语言中表示数据类型和语言字符,在现代计算机中,一个字节等于八位;字是表示计算机自然数据单位的术语,在某个特定计算机中,字是其用来一次性处理事务的一个固定长度的位(bit)组,在现代计算机中,一个字等于两个字节。比特(bit)是由英文BIT音译而来,比特同时也是二进制数字中的位,是信息量的度量单位,为信息量的最小单位;引用数据类型:是数据的引用在栈中,但是他的对象在堆中。
2020-02-26 17:31:35
13826
1
原创 HashMap笔记
01Hashtable、HashMap、TreeMap对比Hashtable、HashMap、TreeMap 都是最常见的一些 Map 实现,是以键值对的形式存储和操作数据的容器类型。(1) 元素特性HashTable中的key、value都不能为null;HashMap中的key、value可以为null,很显然只 能有一个key为null的键值对,但是允许有多个值为null的键值对;Tr...
2020-02-17 11:52:39
263
转载 Redis总结
文章目录redis 简介为什么要用 redis/为什么要用缓存为什么要用 redis 而不用 map/guava 做缓存?redis 的线程模型redis 和 memcached 的区...
2020-02-12 14:12:54
246
原创 写单例模式
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必...
2020-02-11 15:44:27
307
原创 垃圾收集机制详解
既然要介绍垃圾收集机制,就要搞清楚以下几个问题:哪些内存区域需要进行垃圾收集?如何判断对象是否可回收?新的对象是如何进行内存分配的?如何进行垃圾收集?需要进行垃圾收集的内存区域;判断对象是否可回收的方法;主流的垃圾收集算法介绍;JVM 的内存分配与垃圾收集机制。一、需要进行垃圾收集的内存区域先来回顾一下 JVM 的运行时数据区:其中程序计数器、Java 虚拟机栈和本地方法栈...
2020-02-04 14:23:55
338
原创 JVM 架构和运行时数据区
一、Java 虚拟机架构 (JVM Architecture)全局了解Java虚拟机架构:如图:只需要重点理解并掌握其中一部分 (同时也是面试重点) 就好了,比如运行时数据区、垃圾收集器、内存分配策略和类加载机制等,类文件结构也可以学习一下,其他的稍作了解即可。1.1 Class 文件 (字节码文件)Java 之所以号称“一次编写,处处运行”,就是得益于虚拟机和 Class 文件 (注...
2020-02-04 12:31:09
333
mybatis 的xml文件出现蓝色弹框
2021-07-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人