自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(86)
  • 收藏
  • 关注

原创 FastDFS 端口映射问题,---spring改变jar包中bean方法逻辑的另一种特殊方式

前言概述最近在做一个系统,是面向事业单位的,其中文件系统,用的是FastDFS,因为这个自己之前用过,所以就用了这个,没有考虑与本项目契合的问题(这也是菜的表现,技术面广度窄,用过哪个就用哪个,没有进行技术选型),然后引出了一系列问题……。因为系统是面向事业单位的,所以这些数据、文件都要放在内网里面 ,然后通过一个公网的ip和端口映射出来。比如:我在内网里面,MySQL在192.168.1.154这台机器上,端口是3360,那我在内网直接连192.168.1.154:3360,就能连上这个MySQL,但

2021-09-27 23:39:49 552 5

原创 idea这么牛,居然能判断当前环境线程是否安全????

‘StringBuffer stringBuffer’ may be declared as ‘StringBuilder’ less… (Ctrl+F1)Inspection info: Reports any variables declared as java.lang.StringBuffer which may be more efficiently declared as java.lang.StringBuilder. java.lang.StringBuilder is a non-th.

2021-08-22 15:41:24 1830 2

原创 java设计模式之代理模式(上)——基于接口的动态代理(JDK中的Proxy)

简介代理模式就类似于生活中的各种中介、代理商,在生活中非常常见。先不说代理模式,我们先从中介说起,中介起到了好处呢?比如说,租房中介,如果没有租房中介,那么租客租房都只能直接去练习房东,虽然说可能是要便宜一点,但是租客花了很大一部分时间和精力去和一个房东联系、沟通,很大可能最终只能看一套房(此处不考虑有很多套房土豪房东),而且很有可能房客对这一套房不满意。那么中介的好处是什么呢,有了中介,房客就不用直接和房东联系,而是和中介联系,中介手上有很多房源,房客可以任意的挑选,挑选合适的。而且中介还可以对房东的房

2020-12-10 11:40:23 243 2

原创 java继承关系中,父类private修饰的内容真的不能被继承吗?NO

前情引入关于java的继承,初学的时候,一直认为父类中private修饰的东西时无法被子类继承。后来随着学习的深入,见得多了一些,看到一些文章博客的另一种观点:其实父类中的东西,除了构造方法之外,其它的全都是可以被继承的,包括私有的。但是由于private修饰的东西,只能在本类中可见。所以即便子类继承了,也是不可见的。我一开始听着很玄乎,什么?我继承了我父亲的遗产,但是我自己却无法使用?这是什么逻辑。反正继承了private修饰的内容,也是看不见的,那和没继承也没啥区别,而且也没法验证子类是不是真的继承

2020-07-18 16:56:40 16127 37

原创 centos离线安装kafka集群安装(Kraft模式)

kafka此前使用Zookeeper进行服务管理,为脱离Zookeeper,从2.8版本开始,有了自己的服务管理组件:Kraft, 所以本次也是用这种模式安装的,版本为:3.4, 废话不多说,开始上干货。

2023-07-04 12:03:32 768

原创 深入探究java中的 xxxable和xxxator

相信有一定工作经验的朋友,都见过或者用过xxxable和xxxator ,比如常见的Comparable和Comparator, 还有还有常见并且容易迷糊的Iterable和Iterator, 看这名字,前两个是和比较相关的, 后两个是和迭代相关. 但是命名如此相似的接口, 又有何区别呢?各自的用途又是什么呢? 今天阿亮带大家一起揭开这神秘的面纱.

2023-04-21 12:42:22 763 1

原创 idea使用之 单词拼写检查设置 分级管理

idea的智能提示使用起来非常顺手, 拼接检查也是其中一项, 有些字段什么的, 不小心将单词的字母顺序写错了, idea的拼接检查就会提示(前提是字段命名规范,并且乱序之后的不再是一个具有意义的单词), 如此一来, 就能规避很多粗心大意的错误.

2023-04-13 12:23:12 1085

原创 线程池执行父子任务,导致线程死锁

一次线程池的不当使用,导致了现场出现了线程死锁,接口一直不返回。而且由于这是一个公共的线程池,其他使用了次线程池的业务也一直阻塞,系统出现了OOM,不过是幸好是线程同事测试出来的,没有直接在生产坏境中出现这种事故,否则后果不堪设想。

2023-03-05 19:06:48 1297 4

原创 springboot 批量下载附件接口,打包成zip

springboot是很流行的框架,文件下载接口也是开发中很简单常见的接口,但是批量附件下载呢?将多个附件打包成zip呢?虽然确实是很简单的一个事情,但是写还是要花点时间来捋一下,前几天刚做过这个需求,就当作笔记记录下来吧。

2023-02-25 10:47:56 1808

原创 快速排序画图细致讲解,java代码实现(递归、栈两种方式)

快速排序在需要排序的数组中任取一个基准值(pivot),遍历这个数组中所有元素,将比基准值小的放在基准值左边,将比基准值大的基准值右边。将数组按照 头、基准值位置、尾分成两段,即当成两个数组,对两个子数组重复步骤1重复步骤1,2,直到数组不可再分,数组即为有序图像说明:快排用到了分治的思想,即把一个问题分成若干个小问题,小问题就变得简单,当解决了所有小问题时,大问题也就迎刃而解。一尺之棰,日取其半,不同的是,取半没有终点,但是快排这里有,当数组不可再分即为终点。

2023-02-19 22:12:11 384

原创 小灰的算法之旅---createBinaryTree 的一点点疑问

深知自己算法薄弱,所以最近在补充自己算法方面的知识,《小灰的算法之旅》这本书作为入门书籍不错,当时在看到《树-深度优先遍历》的代码时,我碰到了一点疑问,经过我多次代码验证,确实是代码不太严谨。

2023-02-12 10:58:56 593

原创 spring aop之 @AfterReturning 不生效

连@Before都能成功执行,为什么@AfterReturning无法执行呢?

2023-02-08 10:38:41 2036

原创 JVM学习疑问之——逃逸分析

尚硅谷宋红康老师在讲到“逃逸分析--栈上分配”时,举了一个例子,我觉得这个例子好像不太恰当……

2023-01-29 18:35:21 254

原创 java多线程之volatile关键字

在多线程的情况下,如果不做同步,很可能会出现糟糕的情况。但是比这更糟糕的情况是:以为仅仅只对写入进行同步就万事大吉了,以为自己采取了措施,但措施本身就不对,这是更糟糕的情况,因为会造成 措施生效 的错觉,

2022-12-11 15:36:38 383

原创 springboot抽象类的成员变量可以自动装配吗?

在springboot的框架下,一个抽象类的成员变量上使用了@Autowired注解,这个成员变量可以被自动装配上吗?

2022-10-31 11:01:31 406

原创 java stream使用指南-------sorted使用及进阶

文章目录引入数据准备1. 依赖2. 相关类初体验基础用法1. 逆序几种写法2. 多级排序3. null值处理进阶1. 本质2. 拓展引入用了一段时间的jdk8的新特性,lambda表达式、方法引用、stream流,用起来是真的顺手啊,最近碰到了一个排序的问题,引发了一些思考,然后就写了这篇博客,归纳总结sorted的用法,在做笔记的同时也让自己有更深的理解。数据准备1. 依赖我喜欢用google的集合工具类,让我构造测试数据更简便。然后也用lombok,依赖: <!--goo

2022-05-02 12:17:16 21733 6

原创 SQL 多条件批量查询

题目描述我现在要批量往数据库中插入数据(xxx证件),这个证件根据证件代码和号码确定唯一,待插入的批量数据里面有些数据,在数据库里面有可能已经存在。我现在的目的是:批量插入,如果该证件已经存在,就忽略。我想到的做法就是:遍历这个 待插入的批量数据,每一个按照代码和号码去数据库中查询,查到了就跳过,没查询到就新增。但是这个 待插入的批量数据 可能很大,我要遍历他,然后循环的去数据库中按照代码、号码查询,循环的去操作数据库,这样操作数据库压力很大。所以我的想法是:想根据这个 待插入的批量数据去数据库中查询

2022-02-14 17:33:03 12753 7

原创 java stream 使用指南-------groupingBy进阶用法

文章目录前言一. 分组 groupingBy基础用法1. 按照某个属性分组2. 分组统计3. 分组求和4. 自定义分组条件------按姓名长度分组5. 自定义分组条件------按照多个字段分组高级用法1. 改变分组后的key和value2. 多级分组3. 我在项目中的使用例子前言刚开始我只会使用普通的for、while循环,最多就增强for循环,后来在项目上看到其他同事在用,看起来很新颖、简洁的样子,然后我也开始尝试使用,用顺手之后发现是真的香。在使用的过程中,有些时候,不能完全实现自己所想的,也没

2022-01-25 16:37:06 9780 5

原创 java设计模式之责任链模式,观摩mybatis二级缓存设计思路

前言软件设计模式,其实就是指在某种场景下,一套符合要求、具有良好拓展性的代码设计。接口、类之间怎样组合、怎样关联,使得代码即满足需求,又耦合性低。当然了,由于具体的场景不尽相同,所以各种设计模式也只是一个提供一个思路、概要,具体细节需要根据具体的场景变通。java语言,由于其悠久的历史和庞大良好的生态,使用人数众多,前人总结出了23中设计模式。这23中设计模式可分为3中类型:创建型:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式结构性:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享

2021-12-17 14:35:57 940 4

原创 docker启动容器错误:docker: Error response from daemon: OCI runtime create failed

用于搜索引擎抓取docker: Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting “/mydata/elasticsearch/config/elasticsearch.yml” t

2021-11-20 15:48:07 90010 3

原创 java 异常捕获,排除某个异常不捕获的解决办法

今天碰到个问题,我在捕获异常时,使用了catch( Exception e),但其中的某个异常,比如NullPointException,我不想捕获,我只想捕获除了NullPointException之外的其他Exception,怎么办呢?java里面有类似cache( Exception not NullPointException e )这样的语法吗?就我所知,是没有的。没有这样的语法,就只能catch(ClassNotFountException | ArrayIndexOutOfBoundsExc

2021-11-16 14:46:46 4322 2

原创 java stream处理 fastJSON反序列化的JSONObject对象

前言java如此庞大的生态之下,json工具类有很多,我常用的是阿里巴巴的fastJson。在最开始使用的时候,我反序列化,用的是这个方法public static <T> T parseObject(String text, Class<T> clazz)需要传两个参数,第一个是json字符串,第二个是需要序列化成的对象的class,这样的好处是能直接转成对象,然后操作对象,对象也能复用。但是有有个缺点:需要预先把对象创建出来,如果json层次很深,那就需要定义很多的类,举

2021-11-15 11:27:58 2093

原创 SpringBoot ThreadLocal Tomcat线程复用导致内存泄露的处理,以及连带后续问题

前言最近在项目里面引入了ThreadLocal,其实我对这个东西不太熟悉,只是看到在上家公司的项目里面用到了,然后我百度了一下,说是可以将一些数据缓存到线程中,然后先从线程中拿,没有再到redis中或者mysql中拿,可以减轻数据库压力,所以就引入到这个项目了。系统的当前登录用户,以前每次我都从redis中取的(根据前端传的token),引入ThreadLocal之后,我就优先从ThreadLocal中取,如果ThreadLocal中没有,我再从redis中取,取出来之后缓存到ThreadLocal中,

2021-11-13 17:18:59 4659 2

原创 两个变量组合判空,idea智能提示Condition ‘b == null‘ is always ‘true‘ when reached

我一直都是用的idea,不得不说,真的是很智能、很顺手。所以在代码中碰到提示,我都会看一下,然后思考一下,为什么这么提示,是否有优化的地方。最令我满意的是这个发现是:idea这么牛,居然能判断当前环境线程是否安全????。今天在码代码时,又发现了一个idea的提示,让我思考了好一会儿代码也很简单,如下:有两个变量,我要组合判断他们为非空的情况,我按照我的想法写:1. a为空,b不为空;2. a不为空,b为空 ……当我写完之后发现,在第三种情况的判断下,idea给出了一个黄色的提示:Conditi

2021-11-01 13:56:13 9262

原创 Centos 安装docker 警告:正在等候 事务 锁定 arb/rpm/.rpm.lock 正在等待 pid 为32758的进程退出。

centos8,安装docker,出现了错误:警告:正在等候 事务 锁定 arb/rpm/.rpm.lock然后就卡住不动了,这其实是之前安装没有正确安装,也没有正确退出造成的,我的处理方式是:中断此次安装,直接粗暴的删除对应的文件,然后重新卸载一遍docker,再次安装。如果是公司的或者生产的服务器,那这个操作可要三思而后行。因为我也不懂那个文件是干什么的。再次安装,没有出现上面这个问题了,但是出现了另外一个问题:正在等待 pid 为32758的进程退出。然后又卡住不动了有了 上次的经

2021-10-08 09:17:44 1739

原创 jwt Claims token 秘钥稍有不同也能解析成功 signWith setSigningKey

问题描述使用io.jsonwebtoken.Jwts构造了一个token,在解析这个token时,发现解析秘钥和构建秘钥不完全相同也可以成功解析,代码如下签发token /** 测试生成token */ @Test public void testJwt() { JwtBuilder jwtBuilder = Jwts.builder() // 唯一ID {"":""} .setId("888")

2021-09-28 10:35:47 2925 3

原创 java 接收任何类型的List的参数声明

问题:如文章标题所描述,在方法声明时,声明一个可以接受任何类型List的参数。比如我List<User>能传进来,List<Employee>也能传进来。当时我代码中有这个要求时,我下意识觉得很简单,毕竟我做java开发也一年多了,java这点底子还是有的,然后我写出了如下的方法天真的我以为这就完事了,在调用这个方法的时候才发现有问题这个Student类型的list根本传不进去,这时我才意识到一个Student类型的List是不能用 一个Object类型的List变

2021-09-18 22:06:56 7867 6

原创 java 关于主方法(main方法)可变的地方

假如你还记得你刚入门学习java的时候,那你们老师肯定给你们说过,main方式是程序执行的入口,这个方法你就照着抄,一个字母不要错,一个符号不要错。public static void main(String[] args) { System.out.println("hello word"); }可是即便这样,我们还是可能把少打一个括号,英文符号打成中文,导致编译报错。于是我们一遍又一遍的敲这个主方法,烂熟于心,不再出错。然后我们开始用ide的快捷键,来生成这个主方法

2021-09-18 21:25:30 606

原创 Lombok链式调用,子类对象set父类属性,返回父类对象

前言lombok相信大家都用过,没用过肯定也不会点进来,一直用着都很舒服。今但是天在码代码时,碰到了一个问题,卡了半天。问题是这样的:Lombok链式调用父类中的set属性时,返回的居然是一个父类对象,紧靠文字描述,可能比较抽象,代码如下:子类实体父类实体其实就是实体间的继承,把公共的字段抽取出来,具体的实体继承。我这里的JcZyyhzh继承了BaseCompanyIdEntity,BaseCompanyIdEntity其实还继承了BaseIdEntity,因为和我们今天主题扯不上关系,就没贴出

2021-09-13 22:33:11 7835 3

原创 分享一个简单有趣的面试题

今天上班摸鱼时,在微信群里看到了一个道友发的面试题有道行高深的道友直接给出了答案大腿一拍,直呼666话说回来,这题咱们该咱做呢?其实我第一时间想到的,就是题目上那个提示:嵌套for循环,直接套他四层。本来想在群里水一水:直接他个四层循环。但是想到群里两百来号人,咱们刚进群,不能轻举妄动,胡乱发言。而且,这题目肯定没这么简单。在群友们都在积极发言时我眉头紧锁,深思熟虑,果然,功夫不负有心人,经过半小时思考,终于找到了一个好解法,又被我成功的装到了,然后分享思路,再谦虚一波,以退为

2021-08-26 18:14:53 203 2

原创 mybatis-plus填充器,表之间字段不一样的处理方式

前言一个项目最初的开发,刚把项目搭建起来,在进行各种配置。进行mybatis-plus填充器配置的时候,我发现了一个问题,以前在项目中进行的配置是这样的:因为每张表的字段都是相同的,所以直接填充值就可以了。但是这次我发现某些表中的字段名不同,那么再这样处理,就不行了,分析在网上也没有找到...

2021-07-22 09:03:23 595 3

原创 spring-security 用户名错了也能进入

前言s最近在跟着尚硅谷的视频看spring-security框架的教程,视频传送门在讲认证的时候,老师讲了三种方式在application.yml或application.properties配置文件中配置用户名和密码通过配置类配置用户名和密码通过实现org.springframework.security.core.userdetails.UserDetailsService接口, 从数据库中查询用户,从而确定是否能进入前两种直接配死的情况,在正常的项目中用得可能比较少,用得比较多的可能还

2021-07-09 15:22:07 1159 2

原创 重载和重写详解

前言我经常喜欢搞清楚一些细节性的东西,如果放在生活中,就是杠精,但是在代码中,就不是了,跑偏了。今天要说的是重载和重写,其实重载和重写是两个完全不同的概念,只是在中文中,这两个名词有点像,所以经常被拿来进行比较。重载或是重写要满足一些条件才能成立,但是这些条件,如果死记硬背,不太好记,而且很容易记混。但是如果我们搞清楚他们之间的他们的本质,或者是为了解决什么问题,那么就不会搞混了,再结合顺口溜,就很容易记住。重载重载相对简单一些,先说重载原理重载是为了解决什么问题呢?其实重载是为了解决同一个类

2021-06-27 23:13:23 4592 2

原创 python学习---两行搞定水仙花数

近有盈时,稍习python,深谙其简洁之道,乃两行解水仙花。道行尚浅,切莫见笑,尤有优者,愿闻其详。for i in range(100, 999): print(str(i) + "\n" if (i // 100) ** 3 + (i // 10 % 10) ** 3 + (i % 10) ** 3 == i else "", end="")...

2021-06-21 21:46:21 140 1

原创 linux下安装mysql(.tar.gz压缩包方法)

前言对于大众和新手程序员来说,linux可能是一个比较陌生的系统,但是作为开发者又得经常和它打交道。作为后者的我,被安装mysql搞得头可大了,第一次安装mysql,装了一天半,但是没记录。然后第二次安装,又安装了两个小时,为了下次不再浪费时间,也为了能帮助到其他同伙,所以特别做了这次记录。准备工作linux虚拟机或linux服务器和远程连接工具等就不说了。我们先下载mysql的安装包,下载地址:https://downloads.mysql.com/archives/community/选择

2021-06-21 14:25:36 9026 4

原创 服务器下安装windows操作系统---宝德服务器

前言今天是入职第一天,让我去给两台机器装windows系统,这这这,也在开发的范围内吧。我以前给自己的电脑装过系统,但是用的是三方工具,什么装机大师、系统之家,用它的工具,跟着他的步骤走就完事了,而且那都是好久之前的事情了,现在都忘完了。果然是机房,一台台只有主机的电脑,没得显示器、鼠标键盘那些,不是咱们这专业的,估计看到都不知道这就是咱们平时用的电脑。虽然是做开发的,但装系统这些应该是没问题的,话不多说,咱们步入正题。准备工作第一步,当然是准备iso镜像,然后将镜像做成系统u盘,在主机启动的时候

2021-06-16 11:23:53 7152 4

原创 Elasticsearch学习记录1-------环境搭建

最近在B站跟着狂神的视频学Elasticsearch,视频连接:https://www.bilibili.com/video/BV17a4y1x7zq前面学得好好的,去狂神的公众号拿了资料,安装包什么的。但是在按照可视化界面Elasticsearch head时,按照狂神的视频,需要先安装前端环境,node.js和npm什么的,我对前端这些东西的确不熟悉,也暂时没有从头学的打算。所以就听了弹幕上的意见,用直接用谷歌浏览器的插件,就不用再安装那先麻烦的前端环境了但是问题又来了,谷歌插件商店是需要搭梯子才能

2021-06-09 09:12:45 172

原创 mysql中between……and……的范围,对“应用在字符上左闭右开”的正确解释,纠正老杜的说法

起因因为技术的细节有很多,我习惯做笔记,特别是一些我没有新奇的、在我认知之外的,我更喜欢记录一下。今天我在复习mysql时,看我之前的笔记,看到了这么一条笔记对于我自己记的东西,很多时候我都是深信不疑,因为我肯定是经过验证或者很肯定的事情,我才记的。但是翻笔记的时候离我做笔记的时候已经过了好久了,所以我不是很肯定这条笔记的正确性。于是我百度了一下,惊奇的发现,百度上全都是这么一个结论:between是闭区间,压根没有提“应用在字符上是左闭右开”的事情,我当时就觉得很怪异,因为如果真的有这条结论的话,网上

2021-05-24 22:44:17 6290 6

原创 记一次迷之错误:无法import自己写的类

简单介绍一下环境笔者在写一个SSM的小demo,复制了一些类过来,但是神奇的是,在一个类中无法import另一个类,具体来说是:service实现类中无法import dao和service接口,就是如此简单的问题,Cannot resolve symbol xxx,按照我目前的水平,这种问题应该能解决的,但是定位了一个多小时,最终发现在这些包里建的类在别的类里面都无法import,但是没有找到为什么这样。解决方案定位了问题原因,解决就简单了,新建一个不一样的包,把那个有问题的包里面的类移到新建

2021-04-22 11:29:22 608

原创 springboot模块分化,实体模块分离出来之后报错

用于搜索引擎抓取2021-04-12 10:53:30.965 ERROR 25268 — [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :Description:Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured.Reason: Failed to d

2021-04-12 12:54:51 257

空空如也

空空如也

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

TA关注的人

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