- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 IDEA mac 中如何彻底删除项目信息
5. **检查并删除相关配置文件**:打开访达,在屏幕顶部工具栏点击“前往”,按下键盘“Option”键,点击进入“资源库”。2. **从IDEA中删除项目记录**:在主界面的“欢迎界面”中,点击“项目”选项卡,找到要删除的项目,右击它,选择“从列表中删除”。4. **清理IDEA缓存**:通过IDEA的“文件”菜单,选择“无效化缓存/重启”,然后选择“无效化并重启”来清理缓存。1. **关闭项目**:打开IntelliJ IDEA,在左侧的“项目视图”中,右击要删除的项目名称,选择“关闭项目”。
2025-02-19 12:49:01
327
原创 Resolving Maven dependencies卡死
修改maven Importing的jvm参数, 默认为700多, 直接修改成 -Xms1024m -Xmx2048m。检查了一下Maven的配置都没有任何问题,推荐一个比较快速有效的解决方法。重启Resolving Maven dependencies立刻就消失了。更新了最新的idea;打开Settings。
2023-12-18 19:44:34
700
原创 过滤器filter中Httpresponse添加body
在拦截器中进行拦截操作时,想要给response添加body,如何操作? /** * 返回JSON数据 * @param response * @param obj * @throws Exception */ public static void responseJson(HttpServletResponse response, Object obj) throws Exception { response.setCo
2022-05-16 14:55:32
625
原创 chrome浏览器添加cookie 代理
https://chrome.google.com/webstore/detail/modheader/idgpnmonknjnojddfkpgkljpfnnfcklj?src=modheader点开以上链接,添加插件到浏览器中;根据需求,增加cookie 等,
2022-04-27 10:22:12
540
转载 位运算的相关性质和算法技巧
异或运算的“半加”特性可以理解为基于二进制的加法,但是不进位,也就是说加法溢出时丢弃进位1.异或的性质 x^0 = x且x^x = 0 交换律:x^y = y^x 结合律:(x^y)^z = x^(y^z) 自反性:x^y^y = x 2.运用异或交换两个a,b的值a = a^bb = a^ba = a^b3.异或应用的一些场景3.1A集合里拿掉数x得到B集合,求x令XOR(X)表示将X集合内所有的数做异或XOR(B)^XOR(A)..
2022-04-22 16:05:58
912
原创 cant start as root
错误原因root用户启动es7.4.0被拒绝,其他版本类似.es 因为安全问题拒绝使用root用户启动解决方案添加用户组es,及用户es 密码passwordgroupadd esuseradd es -g es -p password # -g 指定组 -p 指定密码chown -R es:es elasticsearch-7.4.0/ # -R : 处理指定目录下的所有文件给用户es:es添加指定目录拥有权限su escd elasticsearch-7.4.0
2022-01-29 22:50:12
1111
转载 promeTheus 接入
版本io.micrometer 1.2.1实现功能 Java接入PromeTheus,提供jvm 监控以及自定义指标监控 实现自定义指标的接入功能 实现指标label动态赋值功能代码注册MeterRegistry @Bean(value = "meterRegistryCustomizer") MeterRegistryCustomizer<MeterRegistry> meterRegistryCustomizer() {
2021-10-19 17:47:02
1200
转载 优雅代码一 Optional
在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示在这种情况下,有如下代码user.getAddress().getProvince();这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法if(user!=null){Addressaddress=user.getAddre...
2021-10-11 15:44:41
227
转载 AST 浅析
前言Aspect 语法难懂?ASM 字节码操作繁琐?APT 难以精准找到切入点?你该试试 AST 了!编辑器级别,效率高,更轻量。一、概念在开始上手之前,我们先了解下几个简单的概念:什么是 AST ?AST 的作用?我们知道,编程语言再怎么变,不变的是由「类型」「运算符」「流程语句」「函数」「对象」组成的本质,这些本质概念表达了底层的运算与逻辑,那么这么多编程语言,要怎么抽离出这个逻辑本质呢?答案就是:转化为统一的结构!这个统一的结构不依赖于源语言的语法,只代表源语言中...
2021-09-23 11:17:26
1462
转载 抽象语法树AST的全面解析(三)
AST操作前面两篇文章写到了抽象语法树的生成过程和语法树的节点访问,这篇文章来写一下如何操作抽象语法树。操作AST可以完成什么事情?拿到了抽象语法树,等于我们拿到了整份的代码,我们可以对所有的代码进行扫描,可以在特定的代码中写入一些逻辑:清除或者添加日志; 对象调用的非空判断; 编写我们特定的语法规则,对不符合规则的代码进行修改或优化; 增删改查。。。AST的优缺点优点:AST操作属于编译器级别,对程序运行完全没有影响,效率相对其他AOP更高;缺点:没有官方文档,操作比较复杂,
2021-09-22 15:26:38
1251
1
转载 抽象语法树AST的全面解析(二)
JCTree类(com.sun.tools.javac.tree.JCTree)的简要分析上一篇文章讲解了抽象语法树的来源和获取时机,接下来要分析一下抽象语法树的内部结构。抽象语法树由JCTree的内部类(如JCCompilationUnit,JCClassDecl,JCMethodDecl等)作为语法节点构成。我们可以通过调用JCTree的accept()方法来访问抽象语法树的所有语法节点。public abstract void accept(JCTree.Visitor var1);
2021-09-22 15:16:11
975
转载 抽象语法树AST的全面解析(一)
Javac编译概述将.java源文件编译成.class文件,这一步大致可以分为3个过程:1、把所有的源文件解析成语法树,输入到编译器的符号表;2、注解处理器的注解处理过程;3、分析语法树并生成字节码。javac编译过程.pngParse and Enter1.词法分析: 通过Scanner将源码的字符流解析成Token流通过词法分析器分析源文件中的所有字符,将所有的...
2021-09-22 15:00:13
2549
转载 Spring 配置文件的使用
方式一、Controller上面配置简介:讲解使用@value注解配置文件自动映射到属性和实体类1、配置文件加载方式一1、Controller上面配置@PropertySource({”classpath:resource.properties”})2、增加属性@Value(“${test.name}”)private String name;举例上篇的文件上传的地址我是写死的。这样显然不科学,这里改成写在1.application.properties配置文件里
2021-09-08 18:09:50
305
转载 Java 拦截器
一、引言 既然要用拦截器,首先先得简单了解一下什么是拦截器: 概念:java里的拦截器是动态拦截Action调用的对象,它提供了一种机制可以使开发者在一个Action执行的前后执行一段代码,也可以在一个Action执行前阻止其执行,同时也提供了一种可以提取Action中可重用部分代码的方式。 作用域:动态拦截Action调用的对象(也就是我们的controller层) 我们日常开发中,经常会遇到这个场景:在访问系统功能前,需要用户登录,不登陆的话无法使用我们的系统,那么如果在每个方法
2021-09-06 11:30:40
20489
1
转载 一个避免消息重复消费的解决方案
我们通常会认为,消息中间件是一个可靠的组件——这里所谓的可靠是指,只要我把消息成功投递到了消息中间件,消息就不会丢。即消息肯定会至少保证消息能被消费者成功消费一次,这是消息中间件最基本的特性之一。也就是我们常说的“AT LEAST ONCE”,即消息至少会被“成功消费一遍”。一个消息 M 发送到了消息中间件,消息投递到了消费程序 A。A 接受到了消息,然后进行消费。但在消费到一半的时候程序重启了,这时候这个消息并没有标记为消费成功,这个消息还会继续投递给这个消费者,直到其消费成功了,..
2021-08-24 14:56:45
689
原创 执行mvn 命令,提示Could not find artifact xxx或Could not resolve 可能是 设置Settings文件无效
问题:公司业务拓展,新增服务项目之后,需要和原来的jar包仓库分离,这就需要idea中不同的项目配置不同的maven管理仓库;于是在不同项目的idea的maven 管理页面上,分别配置以下三项;配置完了之后,打开项目,自动导包没有问题,所有包下载完毕,也下载到了照配置的路径仓库里;(个别红的波浪线,是因为网络原因下载没有进行完全,产生以lastupted 的文件,打开包目录讲里面带有这个后缀的文件全部删掉,会重新导包)然后利用mvn 命令,就会出现标题所述的问题;我们先了解下mvn 查找sett
2021-07-07 11:16:43
1200
转载 springBoot 方法自动启动
在springBoot中我们有时候需要让项目在启动时提前加载相应的数据或者执行某个方法,那么实现提前加载的方式有哪些呢?接下来我带领大家逐个解答1.实现ServletContextAware接口并重写其setServletContext方法@ComponentpublicclassTestStartedimplementsServletContextAware{/***在填充普通bean属性之后但在初始化之前调用*类似于initializingbe...
2021-02-26 19:07:09
683
原创 Redis 进阶使用(二)
一、Redis 的AFK 原理单机会有3个问题,通过AFK 来进行集群维度的划分,来解决相应的问题;比如x 主备 划分解决单点故障等;AFK 会引起一些问题,比如数据的一致性,不同程度的一致性,会有不同的问题;可以通过以上的方式进行解决,最终异步kafka 等方式;二、 Redis 中的CAP原理CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance)。CAP 原则.
2021-02-22 21:02:56
451
2
原创 Redis 进阶使用(一)
一、piple 的使用http://redis.cn/topics/pipelining.html管道主要作用就是一次发送多个命令,减少了命令的通信成本redis 启动是冷启动的,有些场景需要,进行一些数据的初始化,这个时候,可以间接用到piple参考 Redis从文件中批量插入数据 或Redis 大量数据插入二、发布和订阅 http://redis.cn/topics/pubsub.htmlhelp @pubsubPSUBSCRIBE p...
2021-02-20 19:14:40
300
原创 Redis 的基础使用 不同value类型的常用命令
目录一、基本的get set;二、value 为String 相关三、value 为List 类型相关命令四、value为 Hash 类型相关命令一、基本的get set;SET key value [EX seconds|PX milliseconds|KEEPTTL] [NX|XX] ;NX :只有不存在的时候才会创建该key,并且写入当前值,如果存在次key,则value 无法更新进去;应用场景,分布式锁等;XX:只有key 存在的时候才会将value值更新进...
2021-02-18 12:23:59
468
1
原创 一。Linux 安装并运行Redis
一. 安装进入官网,downLoad 右键复制链接地址,得到类似https://download.redis.io/releases/redis-6.0.10.tar.gz的地址; 登录要安装的机器,yum install wget ,安装wget 工具; 命令wgethttps://download.redis.io/releases/redis-6.0.10.tar.gz ; 安装到当前目录中; 解压压缩包 tar xf redis-6.0.10.tar.gz; 得到文件夹red...
2021-02-05 12:39:47
491
原创 Spring boot (1) - 创建一个项目的基本配置
1.新建项目官网官方文档https://docs.spring.io/spring-boot/docs/ 官方地址 https://spring.io/ 官方中文地址a. 官网直接下载初始项目 start.Spring.io 来生成压缩包,解压导入即可b. idea直接生成对应项目new project-> spring Initializrc. Spring boot 启动文字banner小工具官网banner 应用https://martinfowler...
2021-01-15 18:53:00
143
转载 springboot 启动 pom 依赖的几种方式
springboot里会引入很多springboot starter依赖,这些依赖的版本号统一管理,springboot有几种方案可以选择。目录一、spring-boot-dependencies二、spring-boot-starter-parent三、io.spring.platform一、spring-boot-dependencies有两种方式:1.继承parent:在pom.xml里添加<parent> <groupId>org
2021-01-15 16:33:41
6229
转载 MESI-缓存一致性协议
概念#MESI(Modified Exclusive Shared Or Invalid)(也称为伊利诺斯协议,是因为该协议由伊利诺斯州立大学提出)是一种广泛使用的支持写回策略的缓存一致性协议。MESI协议中的状态#CPU中每个缓存行(caceh line)使用4种状态进行标记(使用额外的两位(bit)表示):M: 被修改(Modified)该缓存行只被缓存在该CPU的缓存中,并且是被修改过的(dirty),即与主存中的数据不一致,该缓存行中的内存需要在未来的某个时间点(允许其它CPU读
2020-12-29 11:12:18
202
转载 注解
目录@PostConstruct那么Java提供的@PostConstruct注解,Spring是如何实现的呢?@PostConstruct@PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解。Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,...
2020-12-10 14:36:14
101
转载 EventBus原理深度解析(Guava)
一、问题描述在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于EventBus使用起来简单、便捷,因此,工作中会经常用到。深入理解该框架的原理就很有必要。二、框架解析2.1、组织结构eventbus的组织结构如下:eventbus主要有以下几部分组成:1、eventbus、asyncEventBus:事件发送器。2、event:事件承载单元。3、.
2020-12-10 11:32:45
13192
转载 Disruptor
背景Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题(在性能测试中发现竟然与I/O操作处于同样的数量级)。基于Disruptor开发的系统单线程能支撑每秒600万订单,2010年在QCon演讲后,获得了业界关注。2011年,企业应用软件专家Martin Fowler专门撰写长文介绍。同年它还获得了Oracle官方的Duke大奖。目前,包括Apache Storm、Camel、Log4j 2在内的很多知名项目都应用了Disruptor以获取高性能。在
2020-12-09 10:52:00
508
转载 Mysql加锁过程详解(8)-理解innodb的锁(record,gap,Next-Key lock)
Record lock单条索引记录上加锁,record lock锁住的永远是索引,而非记录本身,即使该表上没有任何索引,那么innodb会在后台创建一个隐藏的聚集主键索引,那么锁住的就是这个隐藏的聚集主键索引。所以说当一条sql没有走任何索引时,那么将会在每一条聚集索引后面加X锁,这个类似于表锁,但原理上和表锁应该是完全不同的。Gap lock在索引记录之间的间隙中加锁,或者是在某一条索引记录之前或者之后加锁,并不包括该索引记录本身。gap lock的机制主要是解决可重复读模式下的幻读问题,.
2020-12-01 17:04:19
449
转载 Mysql加锁过程详解 (2)- 关于mysql 幻读的理解
首先,mysql 幻读并非是”一个事务内进行两次相同操作居然得到了不一样的结果”,因为它根本不可能发生在使用了 read view / MVCC 的 RR 隔离级别下,这种幻读的定义更适合给 Oracle,Oracle 的事务隔离只有两级,RC 和 Serializable。然后还有很多人辩解说不可重复读是针对某条记录的,幻读是针对记录集合的,这是在自我安慰么?这里给出 mysql 幻读的比较形象的场景:users: id 主键1、T1:select * from users where .
2020-12-01 16:21:23
228
转载 Mysql 加锁过程详解(1)- 基础知识
1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问题,展开较为深入的分析与讨论,主要是介绍一种思路,运用此思路,拿到任何一条SQL语句,都能完整的分析出这条语句会加什么锁?会有什么样的使用风险?甚至是分析线上的一个死锁场景,了解死锁产生的原因。注:MySQL是一个支持插件式存储引擎的数据库系统。本文下面的所有介绍
2020-12-01 10:56:08
279
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人