- 博客(61)
- 资源 (96)
- 收藏
- 关注
原创 Java递归、非递归构建具有无线层级父子关系的目录、菜单
1、背景 项目开发中,比如一本书,具有多级目录;一个一级分类下面还有二级分类,二级下面有三级…。此时需要后端返回一颗完整的无限层级的菜单树。2、思路 构建树的一般思想都是使用Map之类的映射处理或者使用递归之类的处理,Map有个好处是直观明了,具体实现可见本人的另外一篇(Java使用Map构建无限层级树)。但是递归对数据保护的比较好。本处介绍一下使用递归来构建树:找出所有的顶级父级,组装成List。递归找出每一个顶级父级的孩子节点。3、实现import com.alibaba.fast
2021-07-24 20:38:12
2115
5
原创 Spring/SpringBoot使用多数据源时,导致Mybatis插件PagerHelper失效问题解决方案
笔者在使用多数据源后,出现MyBatis插件PageHelper完全失效的问题,导致每次查询都不进行翻页,查询处所有的数据。这是因为配置多数据源时,必然要重写SqlSessionFactory(MyBatis的接口),这就导致默认的插件加载失效,此时就需要重新绑定PageHelper插件了。1. 配置插件/** * 配置插件 * * @return bean */ @Bean(name = "plugins") public Interce
2020-10-10 20:22:24
2321
1
原创 Spring/SpringBoot实现配置多数据源和常见问题
在做SpringBoot项目开发时,有时需要配置多个数据源。今天记录一下多数据源的配置。1. 设置数据源枚举,通过枚举作为数据源Map的key获取数据源,实现动态切换数据源实现代码:/** * 描述:数据源枚举 */public enum DataSourceEnum { /**默认数据源**/ DB_DEFAULT, /**另外的数据源**/ DB_REPLICATION}2. 配置properties文件:配置多个数据源(备注:前缀可以自己定义)
2020-10-09 21:11:58
1201
原创 MyBatis如何实现数据库关键字作为表字段的更新
最近需要操作别人的一张表,该表直接将MySQL的关键字作为表字段,使用MyBatis插入数据时一直报错。开始一直以为是SQL语句的问题,后来排查到原来是使用了MySQL关键字作为字段,导致更新出错。神奇的是,别人更新这张表一点问题都没有(最后才发现他自己都不使用这个字段)解决这个问题很简单,使用MyBatis更新数据库关键字作为表字段的字段时,只需要在改字段上加上一个反引号即可,记住是反引号,反引号。...
2020-09-05 11:53:21
1197
原创 Java多线程 JUC之线程池的使用详解及其扩展分析(ThreadPoolExecutor、ForkJoinPool等)
一 前言谈线程池前有必要回顾一下多线程,
2020-07-26 21:11:04
409
原创 Java :AES算法加密解密工具(防止出现在Win系统能够加解密,在来Linux不能加解密问题)
import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import org.apache.commons.lang3.StringUtils;import org.springframework.stereotype.Com
2020-07-20 18:47:53
479
原创 Jvm运行时的区域划分和解读
Jvm在执行Java程序过程中会把它所管理的内存划分为若干个不同的数据区域,运行时候的区域主要包含以下几个方面。1. 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,是程序控制流的指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。由于Java虚拟机的多线程是通过线程轮流切换、分配处理器执行时间的方
2020-07-12 19:46:58
390
原创 RAM、ROM、高速缓存(Cache)的联系和区别
RAM(Random Access Memory): 随机存储器,俗称内存,我们常说的电脑内存8g,指的就是这个(也不完全正确)。RAM要求每时每刻都不断地供电,否则数据会丢失。它由半导体材料制作,是计算机的工作场所。ROM(Read Only Memory): 只读存储器,应用于硬盘存储。一般由磁性材料制作,用来存放暂时不用的信息,只有加载到内存(RAM)中才能被CPU处理。即CPU与硬盘不发生直接的数据交换。Cache (高速缓冲存储器) Cache介于CPU与RAM之间,是一个读写速度比R
2020-07-11 22:59:08
14317
原创 Java去除完全闭合html标签、去除部分未闭合的html标签的几种方式
1. 使用正则表达式去除html标签 /** * 去除Html标签 * * @param html * html内容 * @return 去除标签后的文本 */ public static String dislodgeHtmlLabel(String html) { if (Objects.isNull(html)) { return ""; }
2020-06-29 12:48:35
1600
原创 ElasticSearch Java查询某字段既不为null也不为空的条目
最近需要查询某个字段既不为null也不为"",但网上有很多关于ES查询某些字段为null和""的博文,研究了一下,发现有三种方案。方案一: 使用existsQuery关键字,查询出某些字段存在(值为null)的条目,但是不能过滤出值为""的字段 BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery(); List<QueryBuilder> must = boolQueryBuilder.
2020-06-09 20:04:14
13755
4
原创 ElasticSearch 7.x使用Java代码导出索引中的文档到本地为JSON文件
在ElasticSearch中,每建立一个索引,至少需要一个主分片和一个副分片。当索引过多的时候,在不加机器的情况下,是非常影响性能的。那有什么办法可以避免不加机器也能提高性能了。当然有:那就是删除一些基本不可能用到的,且索引下文档数特别少的索引。可删除后,有一天需要回复怎么办了,备份起来是个好办法。即:将ES中的数据备份到本地,然后将其压缩。 索引导出为JSON文本后,高度结构化。因为JSON是K-V形式的,导致key可以无限重复,这样的数据最适合压缩存储,我导出一个索引大概有1.1G,将其压缩后就只
2020-05-26 19:52:58
1163
原创 ElasticSearch 7.x创建索引,获取全部索引,添加数据,获取索引别名,索引下文档数量等
ElasticSearch也用了一段时间,索引建立好后,基本就很少去用表达式操作它了,目前一直都是直接用Java代码去进行ES的增删改查,今天突然需要用到索引
2020-05-21 22:54:57
9734
3
原创 Spring/SpringBoot事务详细介绍
事务简介 事务管理是企业开发,或是多增删改操作当中必不可少的技术,主要用来保证数据的一致性,例如,在一个接口中,一次执行A(增)、B(删)、C(改)三个操作,当执行完AB操作之后突然出现了异常,导致C无法继续操作,即AB操作成功,C没有成功。此时,事务管理派上了用场,它可以保证ABC三个操作,要么都成功,要么都不成功。只有这么两个结果。事务的四大特性 事务有四大特性(ACID )原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败。成功则所有的数据库操作都生效
2020-05-18 22:59:52
3812
5
原创 MySQL为表追加创建时间和更新时间,并指定时间的位数(到毫秒)
MySQL追加创建时间和更新时间,并指定时间的位数(到毫秒)##创建时间,直接默认格式ALTER TABLE test ADD COLUMN `gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间';##更新时间,精确到毫秒ALTER TABLE test ADD COLUMN `gmt_modifi...
2020-05-08 11:17:06
1037
原创 SpringBoot中使用@Async注解使用及其失效问题解决
项目开发过程中,经常会使用到异步处理。对于异步处理,我们最先想到的基本是直接在写类,然后继承Thread类或者实现Runnable接口,然后调用start()方法,这样也就达到了异步效果。 在SpringBoot或者Spring中若我们仅仅想使用异步功能,处理一些耗时久,且不是核心的逻辑,使用Spring的@Async注解即可,简单明了。 @Async注解虽然极其简单,但是里面的坑确是...
2020-05-05 22:15:14
1842
2
原创 Apache POI解析word为html出现:......converter.core.XWPFConverterException: java.lang.NullPointerException
使用Apache poi解析word文档为html文件时出现空指针异常:报错一:org.apache.poi.xwpf.converter.core.XWPFConverterException: java.lang.NullPointerExceptionat org.apache.poi.xwpf.converter.xhtml.XHTMLConverter.convert(XHTMLC...
2019-12-13 15:31:40
6657
11
原创 Java构造前端vue使用的树(或者使用Java构造常用的部门树等)
Web项目开发中,由于前端框架的限制,很多时候需要将返回的数据加工后再返回给前端。最典型的就是返回一棵部门层级关系的树。下面即是一棵带有层级的文档标题树,和我们书籍的目录结构一样。 在树的结构中,每一个节点都需要有一颗父级节点,即使是顶级节点,也需要给其父节点赋值。比如,在下面的带有父子关系的线性结构中,有些id的parentId是null的,此时就需要将parentId为null赋值为...
2019-12-05 19:13:00
751
原创 SpringBoot(Spring+Java8)实现去除controller层的String(含包装类)类型参数的首尾空格
目前SpringBoot非常流行,大大简化了Spring整合Mybatis,SpringMVC的配置。但是另外的一件烦心事来了,那就是写接口时候,前后端都需要对String类型的字段做好去首尾空格处理,该项工作简单但是繁琐,虽不费心,但是劳神。在这里写了个注解,在接口进入controller前实现去除字符串去除首尾空格功能。定义注解:import java.lang.annotation.Do...
2019-12-03 19:49:58
2373
原创 SpringBoot访问HTTP链接:java.lang.IllegalStateException: No instances available for......
java.lang.IllegalStateException: No instances available for www.baidu.comat org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.execute(RibbonLoadBalancerClient.java:79)at org.springfr...
2019-11-29 22:46:35
1420
原创 Springboot启动报错:The Tomcat connector configured to listen on port 50008 failed to start.
Description:The Tomcat connector configured to listen on port 50008 failed to start. The port may already be in use or the connector may be misconfigured.Action:Verify the connector’s configuration...
2019-11-18 19:06:59
2035
原创 Java实现将ASCII码转化为中文显示和将ASCII编码的HTML文件转化为中文的HTML文件
今天就在开发过程中遇到的问题,给大家分享一下将ASCII码转化为中文显示的例子。 /** * ASCII转换为字符串 */ public static void transAscii2Chinese() throws UnsupportedEncodingException { // ASCII码 String string ...
2019-11-13 19:15:56
2888
3
原创 使用SpringBoot/Spring时,如何中断运行中的接口
背景: 最近做了一个任务:将各个业务存于MySQL的旧日志文件(业务日志而非运行日志)迁移到新的日志系统中。众所周知,在企业级应用中,因用户各种操作而产生的日志是非常多的,那么在执行迁移日志的时候,接口执行的时间肯定会很长。这次迁移大概用了8个多小时才完全迁移成功。在开发环境写迁移代码的时候,领导有这么一个需求----希望在迁移的时候,能够随时中断迁移。解决: 接口在正常情况下,会一直执行下...
2019-11-11 21:14:09
4009
原创 MyBatis/MySQL查询时实现按照IN里面字段的顺序排序
在进行MySQL查询时,遇到一个问题:查询出来的字段的顺序需要按照IN里面值的顺序进行排序。SELECT * FROM test WHERE space_id IN ( 651877011734764416, 737560066717227904, 738885949361068928 ) 注意图中IN后面的顺序和查询出来的结果的顺序。如果WHERE后面没有ORDER BY字段...
2019-11-06 19:46:59
2673
1
原创 IDEA 2019 设置代码提示不分大小写
在使用IDEA是,发现每次只能进行完全匹配,且区分大小写,在此记录一下不区分大小写的方法。1. 使用Ctrl+Alt+S快捷键,或者 File–>Settings–>Editor–>General–>Code Completion2. 点击OK(效果如下)...
2019-11-04 19:32:11
5513
3
原创 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置(Java实现及解析)
题目:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均为...
2019-11-01 20:20:12
320
原创 LeetCode 273. 整数转换英文表示(Java)
题目: 将非负整数转换为其对应的英文表示。可以保证给定输入小于 231 - 1 。示例 1:输入: 123输出: "One Hundred Twenty Three"示例 2:输入: 12345输出: "Twelve Thousand Three Hundred Forty Five"示例 3:输入: 1234567输出: "One Million Two Hundre...
2019-10-31 18:42:42
514
原创 快速排序---从大到小和从小到大(Java)
快速排序: 快速排序由于排序效率在同为O(nlogn)的几种排序方法中效率较高,因此经常被采用,再加上快速排序使用了分治法的思想,算是基础排序中比较高档的一种排序了。基本思想1.先从数列中取出一个数作为基准数,可以是第一个,也可是中间的或者最后的,但是第一步要把这个基准数与数组最后一位对换。2.将比这个数大(小)的数全放到它的右边,小于或等于(大于或等于)它的数全放到它的左边。3.对左...
2019-10-30 19:31:42
8300
原创 LeetCode 229. 求众数 II (Java)
题目: 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。示例 1:输入: [3,2,3]输出: [3]示例 2:输入: [1,1,1,3,3,2,2,2]输出: [1,2]解析:出现次数超过1/3,表明这样的数字,最多只有2个特殊情况为:数组只有一个数字,只有两个数字,整个数组...
2019-10-30 18:56:04
254
原创 LeetCode 299. 猜数字游戏(Java)
题目: 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜。每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为“Bulls”, 公牛),有多少位数字猜对了但是位置不对(称为“Cows”, 奶牛)。你的朋友将会根据提示继续猜,直到猜出秘密数字。请写出一个根据秘密数字和朋友的猜测数返回提示的函数,用 A 表示公牛,用 B 表示奶牛。...
2019-10-27 21:38:24
609
1
原创 LeetCode 198. 打家劫舍(Java动态规划)
题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ...
2019-10-27 20:15:15
366
原创 LeetCode 237. 删除链表中的节点(Java)
题目描述:请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 ...
2019-10-26 18:08:39
268
原创 LeetCode 21. 合并两个有序链表(Java)
题目: 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:1->2->4, 1->3->4输出:1->1->2->3->4->4解答:题目是将两个链表合并,一般来讲,新建一个链表将其合并然后排序即可,但这个链表是有序的,所以不必完全进行排序。public class Solution{...
2019-10-24 08:51:54
707
原创 LeetCode 1089. 复写零(Java)
题目:给你一个长度固定的整数数组 arr,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。注意:请不要在超过该数组长度的位置写入元素。要求:请对输入的数组 就地 进行上述修改,不要从函数返回任何东西。解读: 遇到0复写是指将其往内存在写一次,然后其余元素整体向右移动,那么就会在原来0的位置的后一个继续补一个0示例 1:输入:[1,0,2,3,0,4,5,0]输出:nul...
2019-10-19 16:46:42
313
原创 LeetCode 13. 罗马数字转整数
题目:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的...
2019-10-19 14:25:34
168
转载 刚开始参加工作的45条建议
又看到一个比较好的工作建议,再次转发一下。1、熬夜的危害比撸管还大。2、不要和傻逼争论的过多,如果把过多的时间浪费在一些傻逼人傻逼事上,你会每天都陷入无尽的痛苦当中。3、可以去尝试任何合理的事情,但请不要让自己太闲,4、任何事不清楚的情况下不要轻易地给出结论,你听到的不一定是事实,你看到的可能是别人想让你看的。5、不要怕犯错,20来岁的年龄,错几次没关系。6、越是不好做的事情,越能提升...
2019-10-19 11:10:43
512
原创 LeetCode 9. 回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例 2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数...
2019-10-17 19:59:04
164
原创 LeetCode: 7. 整数反转
整数反转给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21解答如下:public static int fanzhuan1(int x) { int temp = 0; while (x !...
2019-10-17 19:40:13
155
原创 LeetCode 1.求两数之和
最近每天都是写一写业务代码,基本都能很快的写完,这给我一个假象:我很厉害。实质上却并不是这样,只不过是在公司第待久了,业务都做熟练了而已。想要在其他方面有所提高,也不是很容易,感觉工作中已经达到了一个瓶颈,自己却并不知道如何去跨过,更不知道如何去拔高。于是决定,以后每周都在leetcode上做三到四题,先从简单的开始,总会有些用处的。给定一个整数数组 nums 和一个目标值 targe...
2019-10-17 19:21:13
232
Spring Boot实战中文版
2018-07-31
Windows上MyEclipse2017 CI7 安装、破解以及配置
2018-06-26
MyDraw_v2.3.0_简体中文绿色破解版
2018-05-29
Denoise Methods
2018-04-28
Java,jsp,html,ssh,mysql等相关的毕业论文,期刊600篇
2018-04-10
基于JSP,JAVA医院管理系统设计与实现论文范文
2018-04-10
mysql-5.5.52-winx64.zip
2018-04-10
JSTL包(EL)
2018-01-31
Python学习手册(第3版).pdf
2018-01-28
【Java教程网】Java.EE企业级编程开发实例详解.pdf
2018-01-26
EditPlus_v4.3.0.2535_x86∕x64_已注册绿色完美汉化版
2018-01-26
Acme CAD Converter 2018 v8.9.8.1473破解版本
2018-01-26
CCleaner破解版本四个
2018-01-17
Java和jsp图书管理系统毕业设计(学士学位)
2018-01-08
本科软件工程专业毕业论文c#语言实现
2018-01-08
编译原理(第二版) 普通高等教育“十一五”国家级规划教材。本书提供ppt课件。本书已出新版 作者:张素琴
2018-01-04
Metronic V5.1.7-bootstrap版本.rar
2020-09-16
MD5--c++.rar
2020-02-23
spring-boot英文官方文档pdf版本.rar
2019-11-29
java8新特性(Stream,lambda等)
2019-07-15
JAVA核心知识点整理.rar
2019-07-14
百战程序员1573题全套1.12版1-812题.rar
2019-07-14
百战程序员1573题全套1.12版700-812题.
2019-07-14
Quick Report for 2010
2018-10-22
Fiddler汉化中文升级版
2018-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人