自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

CC学java

随笔记录学习道路上的认知

  • 博客(36)
  • 资源 (1)
  • 收藏
  • 关注

原创 自定义加密解密工具 含原理分析 验签工具 每秒100w加密/解密无压力 含偏移量,权重值,随机值,长度校验,校验码校验,时间戳校验,分段校验等 纯净版手写,无额外引入jar包

加密解密 验签工具 自定义加密解密 校验码 长度校验 随机码 分段校验 过期校验 偏移量权重值 高效

2022-03-04 11:16:44 4987

原创 实现pdf同步/异步解析图片最佳实践 pdf2img pdfbox2.x 配合异步线程池来解决方案 极致压缩服务性能 坑都已踩过 已上线服务 效率50ms/张 异步多线程环境下报字错误等 附关键源码

pdf2img最佳实践(pdfbox2.x springboot 线程池)前言效果代码踩坑记录可扩展前言相信大家在做pdf2img中,大多都是从github中寻找的相关的资源代码,其中我采用的apache家的pdfbox的jar包来的,采用的是2.0.16和2.0.24版本的服务,其中有很好的解决方案。本篇文章不会说linux环境下字体库的事,大多99%的情况下把window的宋体等相关资源字体库加进去就会好。我在这里,就是实战中,pdf2img中采用线程池异步解析pdf成图片集的最佳实践,在测试lin

2021-09-03 13:12:32 989

原创 全网首发 最佳实践 实现img标签转发访问需要权限的资源的最佳实践 src访问需要权限的资源 全网首发 可实现一切资源访问(附代码)Springboot

实现img标签转发访问需要权限的资源概述问题原理流程实现controllerserviceimplutil概述在对接三方服务中,有诸多接口访问资源是需要权限的,比如图片视频此类的,那么前端就无法直接用img等标签来直接展示了,那么本文章的就是提供一种后代转发访问资源来实现页面标签直接访问的。问题在对接三方服务中,比如我这次业务是对接的上上签(https://www.bestsign.cn/)服务,那么其中其提供的查询合同详情接口会返回片段例如"highQualityPreviewUrl": "/co

2021-08-24 14:28:41 1127

原创 系统日志 springboot实现AOP系统内环绕日志记录 最佳实践 已踩过多坑 优化传参收集方式 注解同步实现 记录响应时间 可查询优化接口数据

springboot 项目实现系统日志的最佳实践效果:数据库展示源码:1.表DDL语句CREATE TABLE `sys_sys_log` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) DEFAULT NULL COMMENT '用户ID', `user_role` varchar(100) DEFAULT NULL COMMENT '用户角色', `user_name` varch.

2020-06-19 11:20:08 634

原创 基于java实现的能够自动检查出一组数据中的异常值的集合,剔除这些异常集,得到正常数据的算法工具类

git开源算法介绍喜欢的点个赞或者收藏一下哦 ,里面有具体的实现方法的原理。https://github.com/ruoguangOutliersCheck And FusionResult 异常值检查,剔除后得到融合结果version 1.0.0author ccdate 2019.6.7####function 功能实现判断一组数据(原数据)是否存在异常值 ...

2019-06-09 14:51:05 3214 2

原创 解决大对象toString导致的OOM fastJson中的toString发生OOM异常

java大对象toString fastJson.toString产生的OOM

2024-09-09 16:32:53 218

原创 静态字典的优雅解决方案 springboot 字典接口实现 java 加强静态字典的实现

静态字典 最佳实践 springboot java 接口

2024-08-05 16:20:09 267

原创 通用OkHttpClient工具 配合hutool的jsonobject

java okhttp hutool jsonobject getByPath

2024-08-05 15:24:52 401

原创 三方jar包引入到springboot中 package到jar中正常启动的pom文件怎么写 IDEA

我在resources下创建了lib目录,上传的官方推荐的SDK的jar包。可以观察在BOOT-INF\lib 中可以找到我们的三方jar包。这里+号添加进来项目就能正常编辑。

2024-01-29 10:19:38 858

原创 tkMapper 通用mapper的批量更新 批量新增 官方实现 springboot项目 依赖引入

tkmapper 批量更新 批量插入 官方引入

2024-01-29 10:05:16 1034

原创 java对象对比工具 自定义注解对象属性对比 支持递归调用 无三方包纯原生工具 简单实用 反射来对比对象的差异 增强字典说明

java对象对比工具 纯原生工具 注解反射

2023-08-11 16:51:06 832

原创 实体类一键生成DDL语句(含注解 注释【没听错是注释】) 实体类一键生成建表语句 实体类逆向生成数据库表 支持注解注释生成 springboot项目 注解生成 注释生成 代码简单 功能强大

实体类一键生成DDL

2023-08-09 18:27:02 2345 4

原创 获取下一个工作日/休息日的方法 本地基础搭建 Springboot 法定节假日/休息日/调休日 均可 不用调三方

法定工作日 法定节假日 获取下一个工作日获取

2022-12-08 10:22:38 1197 2

原创 数独9*9常规校验算法 纳秒级别 java 单元测试 附代码 实测40000纳级别

效果(先看单元测试效果)代码import org.junit.Test;public class NineSquares { @Test public void nineSquaresCheckUnitTest() { int[][] data = { {1, 2, 3, 4, 5, 6, 7, 8, 9}, {4, 5, 6, 7, 8, 9, 1, 2, 3},

2022-01-26 10:00:19 507

原创 大保底抽奖算法 原神抽奖算法 java工具类 权重中奖算法 单元测试

保底抽奖算法闲来无事,结合之前自己写的权重随机算法和原神的大保底抽奖规则写个简单实现的方法,内容好懂,给出了单元测试,附上代码import java.util.Arrays;/** * 随机工具 * * @author cc * @date 2021/5/18 */public class RandomUtil { private static final int MAX_WEIGHT = 1; /** * 权重随机算法 * 比如传入weightA

2022-01-24 18:03:58 1435

原创 图片水印 压缩图片 压缩图片200k以内的scale值算法 hutool 附代码

图片操作情形很多情况下,需求上对某个图片进行压缩或者添加水印,我们都会使用到这些图片处理的工具包。在大多工具包中,hutool无非是最好用的。依赖<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.7.20</version></dependency>

2022-01-24 13:59:34 3863 1

原创 README文档模板 含下载地址0积分 项目文档模板 springboot文档示例 readme参考文档 目录跳转 项目架构 使用说明 目录结构 等等 (含附件下载)

项目名称在线签约(signup) (v1.1.0)目录项目简介功能简述项目架构目录结构使用效果安装说明使用说明开发人员版权信息更新日志项目简介*-signup项目(以下简称signup项目),是一个纯在线提供签约服务的项目。也可以理解为是辅助签约的工具包,其中不包含数据库操作和消息队列操作,提供的是在线文件转换和签约接口整合的项目。目前签约方三方服务提供者为上上签(https://www.bestsign.cn/)功能简述此版本功能包含了提供的线上服务和项目的以下特色:

2022-01-17 11:09:17 1130

原创 抽奖算法 中奖算法 权重随机算法实现 中奖概率实现方式 无需配置中奖概率 自我实现

封装好的工具类/** * 随机工具 * * @author cc * @date 2021/5/18 */public class RandomUtil { private static final int MAX_WEIGHT = 1; /** * 权重随机算法 * 比如传入weightArray={1D,2D,3D,4D} 那么100W次结果返回下标0,1,2,3的概率应为10%,20%,30%,40% * 比如传入weightArra

2021-05-18 10:53:19 1982

原创 Linux CentOS7 磁盘修复 无法加载目录 failed to mount /home 或 A start job is running for /home

项目场景:在Linux(CentOS7)远程下,发现常用的/home目录内容为空,也没有任何人进行高危操作或删除操作,我这里的/home 你们也可以类推别的目录无法加载问题描述:在测试环境中,在已启动的了2个tomcat项目之后,启动第三个日志卡主不动,再次远程连接查看其/home目录不翼而飞,重启了linux也无果,就去了机房查找和修复 原因分析:这是因为几个tomcat的日志文件导致磁盘量过大而引发的悲剧,那么下面就是修复磁盘(下面是linux启动报错)解决方案:1.取消开机自

2021-02-25 16:18:24 9935 1

原创 阿里云OSS上传文件 稳定版本 集成OSSUti 稳定版本2.4.0

问题描述:在使用了很多版本阿里云oss版本之后,包括一些过期的方法之后,版本之间的注意点挺多,在众多版本之中找到一个最稳定,最适合自己的版本并集成工具类。这里采用静态集成,可改造为导入配置(Springboot资源加载方法等),不废话下面给出代码代码展示:maven <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliy

2021-01-29 10:46:48 673

原创 解决安卓端 微信点击分享链接(含重定向)发两次请求的解决方案

项目场景:在公众号分享的产品点击时发现会发两次请求到服务器,在一些业务中,我们需要新建站内账号只需要用户发一次请求即可,最高的解决方案肯定是前端控制,我在这给出了一个后台的解决方案,即采用过期策略的Map来实现,可以查看这个文章[过期策略map](https://blog.csdn.net/qq_41808217/article/details/111246766)解决方案: ExpiryMap expiryMap = new ExpiryMap<String, Integer>

2020-12-16 10:33:48 763

原创 过期策略的map ExpiryMap

过期策略的map ExpiryMap说明在没有redis或者其他缓存的项目中,或者只是简单的处理一些过期策略,那马完全有必要可以用下以下这个具有过期策略的map,当然我们也能实现排行榜ExpiryMap这是网上某位大佬自己封装的map,继承至HashMap,重写了所有对外的方法,对每个key值都设置了有效期。我在其基础上增加了使用单例模式获取map。import java.util.*;/** * ExpiryMap 可以设置过期时间的Map * ExpiryMap继承至HashMap 重

2020-12-16 10:21:07 500

原创 mySQL 按照 in()内容排序的解决方案 以下给出实际案例

没有按IN内容排序我们知道,如果没有按照IN内容排序,默认是按id来排序的,实际是以下这种情况标题按照IN内容排序以下是按IN内容给出的集中解决方案:1.按字段内容排序ORDER BY FIELD(fieldName,101405007,101405006,101405009)// fieldName字段名,后面紧接想要按照的顺序,中间用逗号隔开...

2020-10-10 11:41:07 218

原创 java 中的异或运算^的运用 数组交换元素 leetcode 136题 找出值出现一次的数字

什么是异或运算异或运算有以下三个性质。任何数和 0做异或运算,结果仍然是原来的数,即 a⊕0=a。任何数和其自身做异或运算,结果是 0,即a⊕a=0。异或运算满足交换律和结合律,即 a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。异或运算的运用 /** * 交换元素 * * @param arr * @param a * @param b */ public static void swap(int[] a.

2020-08-11 23:46:54 257

原创 数组交换元素和一种另类写法的比较 arr[a] ^ arr[b] 求中间值得一种巧妙算法 避免越界的求中值算法 位运算和算术运算的效率 一些细节

数组交换在数组元素交换中,我们通常会拿一个临时的碗取装载临时链接,通常写法是这样的 /** * 交换元素数组中两个下标元素的位置 * * @param arr * @param a * @param b */ public void swapA(int[] arr, int a, int b) { int tmp = arr[a]; arr[a] = arr[b]; arr[b

2020-07-15 22:11:38 453

原创 一招解决IntelliJ IDEA 中关于git推拉和github账号不稳定以及访问速度

问题:在IDEA我们关联了github账号来,来上传下拉代码,总是由于各种链接错误导致项目无法上传和下拉,这时候我给大家最最直接的一种解决方案。方案:已windows为例,进入C:\Windows\System32\drivers\etc下找到host文件,在末尾加上192.30.253.113 github.com151.101.112.249 github.global.ssl.fastly.net然后更新一下DNS缓存,如下:win+R cmd (命令提示...

2020-05-25 21:02:34 877

原创 springboot 关于 Class path contains multiple SLF4J bindings.警告的解决 通过报错信息来解决冲突完美解决方案【非依赖结构,纯手找】

springboot 关于 Class path contains multiple SLF4J bindings.警告的解决 通过报错信息来解决冲突完美解决方案【非依赖结构,纯手找】在自定义的sprongboot项目中,启用了slf4j作为系统日志,启动发生报错,虽不影响IDEA项目启动,但jar包运行会报错,一下贴图报错信息。springboot启动slf4j日志jar包冲突报错信息以上就是很简单说明了springboot启动slf4g的jar包冲突信息,并给出了jar包冲突的目标文件位置

2020-05-15 12:49:55 864

原创 maven的生命周期

生命周期: 认识生命周期 maven有clean、default、site三种生命周期,每种生命周期都包含一些阶段,clean包含了pre-clean、clean、post-clean阶段;default生命周期包含了validate、compile、test、package、verify、install、deploy阶段;site生命周期包含了pre-site、site、post-...

2019-12-24 11:00:09 565

原创 lombok的好处,使用,观察 带你一探究竟lombok的编译后的class文件

说明:Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean(简单java类),都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。优点:能...

2019-12-23 15:03:05 704

原创 自动订单过滤器(无MQ实现)可实现一键配置操作 拦截记录,友情提示 实现用户提交订单对指定产品规定时间以及用户角色属性,收货地址来实现过滤

说明:由于业务需求,电商平台对用户下单一般有个自定义过滤器,即对用户下单的购物车进行条件过滤,简单来说就是不符合条件的产品不让该用户成功提交订单。该业务由于每个电商的用户属性,业务范畴提现出的条件也是千变万化的。总的来说,可以实现我下面的绝大业务(可能存在差异,能看懂明白就好)。本过滤器v1是没有采用mq和定时器来实现的ssh项目,不说废话了。pojoimport lombok....

2019-12-18 16:01:37 451

原创 用户操作系统日志 记录用户操作记录日志持久化 springAOP切点实现方式 可以填加用户的任何类型的日志 正常+异常记录

说明:直接上效果图系统日志列表一个成熟的系统,应对用户的某些增删改操作,特别是管理员的增删改操作进行日志持久化处理。这些功能基本包括了用户的操作日志。那么我们要对一个完整的操作记录,其单位就是方法。通过AOP的环绕通知可以把切点的记录在内,得到日志并持久化处理。那么就不废话直接上设计了。pojoimport lombok.Data;import javax.persist...

2019-12-13 13:59:57 912

原创 Tomcat关闭RocketMQ消费者资源未释放,导致内存不足 SSH架构 解决方案

描述:在linux的tomcat部署的ssh项目集成了阿里rocketmq,每次重启tomcat发现阿里的控制台就会多一个mq消费者在线,这样一来除了广播模式,发布消息到消息消费都会受到影响,系统开辟的进程多了起来,还会导致tomcat无法关闭。理想方案:理想化就是在tomcat关闭的时候自动释放mq消费者资源。解决方案:由于是ssh项目,大多采用xml装配bean方式,废话不多说,直接上...

2019-12-02 13:54:20 1148

原创 (无报错)Java截取视频生成Gif动图 视频转gif动态图 视频截帧取图 java实现方式

不废话直接上代码1.maven坐标 <!-- 视频截图 --> <dependency> <groupId>org.bytedeco</groupId> <artifactId>javacv-platform</artifactId> ...

2019-11-29 11:21:21 1140 3

原创 ssh框架 hibernate 结果集封装成map 最佳实践 类型

在保持和维护现有的代码前提下,对数据的查询要求结果是Map,比如(productId,discount)商品和折扣是一一对应的。找了半天的资料也没有符合自己心仪的结果,那么只能自己来封装了,简单而言就是用字符创将两个必要信息连接在一起,再到service自定义封装成map操作。DAO层:public List<String> getDiscounts(int cardDisc...

2019-08-23 11:01:46 414

原创 开发过程(链式)代码处理NPE的几种方式以及优雅解决方案。

在实际开发过程中,有些代码逻辑是需要表类(通过数据库的表建立的类)之间的关系来实现的。比如一个简单的需求:就是要找到一个客户的所属市场的名字,在我的现有的公司业务上的代码逻辑是:String mpName=member.getStore().getMarketplace.getName();当我要判断是否为xx市场,那么在表设计之初或者是添加了一些不标准的数据,在执行性该行代码的时候就会...

2019-08-23 10:46:47 683

原创 linux下tomcat启动日志不全问题解决【不报tomcat.started】

问题:系统昨天还运行好好的,今天就产生的异常。也检查了许多前后台的代码也没有发现问题。或者说在本机,测试下都是正常的,在正式环境中出现了这种问题?思考:在思考了半天之后,可能会选择重启正式服务器,也启动了。但可能会发现缺少了很多的日志的记录。方式:在查看linux下的catalina.out的文件大小大约90G,原来是日志记录满了,导致磁盘无法写读,而导致某些模块的功能损坏,n...

2019-08-13 11:28:39 1397

springboot readme参考文档 带链接跳转

springboot readme参考文档 带链接跳转

2022-01-21

空空如也

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

TA关注的人

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