并发编程之多线程等待重试

public static void main(String[] args) {CorpServicePayRecordEntity servicePayRecord = new CorpServicePayRecordEntity();Thread t1 = new Thread(new Runnable() {@Overridepublic void run() { ...
分类: 其他 发布时间: 02-27 08:55 阅读次数: 0

spring一些总结

说到spring,我想只要是做java的都会很熟悉,在开发中应该是使用频率最高的框架之一了,无论是web应用还是java应用都能快速接入来实现我们的需求。以下总结是小弟最近在深入学习spring的个人总结,也希望通过写博客方式加深理解。开始吧…go有时候我们无法通过注解来拿到spring容器中的bean,这时候可以通过上下文,即ApplicationContext来获取bean。为了得到上下...
分类: 其他 发布时间: 02-27 08:55 阅读次数: 0

validation-api包校验嵌套属性(集合对象)的写法

我们知道javax.validation提供了validation-api的jar包实现请求参数校验,避免在业务代码中写一些繁琐的校验逻辑。以下说明嵌套属性的一种写法。package com.example.demo.controller;import com.example.demo.model.ActionParentModel;import com.example.demo.serv...
分类: 其他 发布时间: 02-27 08:54 阅读次数: 0

解决@Async注解在springboot中不起作用

1. 不起作用的写法Controller @Autowired private VehicleService vehicleService; @RequestMapping(value = "/queryBy", method = RequestMethod.GET) public CommonResponse queryList(@RequestParam(...
分类: 其他 发布时间: 02-27 08:54 阅读次数: 0

spring cache动态获取redis指定namespace下的key

spring cache是一种可以通过注解或XML配置方式来实现缓存的组件。 在开发过程中很方便,如@Cacheable、@CacheEvict等。一般都是事先在方法上去加入注解,并且写死了cacheName,比如如下例子: @Cacheable(value = "ota.applications", key = "#packageName") public Application...
分类: 其他 发布时间: 02-27 08:54 阅读次数: 0

spring rest docs创建api文档介绍

日常开发中可能很少会用到spring rest docs来创建API文档,因为spring boot容易集成的原因,大家可能还是比较倾向于使用swaggerUI文档框架了,spring rest docs有一个好处是需要写单元测试(这个是很多开发人员不愿意的,包括我 -_-),还有个人觉得从界面和展示效果,我还是比较喜欢spring rest docs。在开发中接口文档是必不可少的,至于选择哪一种...
分类: 其他 发布时间: 02-27 08:54 阅读次数: 0

Mysql使用union all统计多张表组合总数,并分别统计各表数量

select count(distinct(vehicleId)) as ‘总数’,count(distinct(case when flag = ‘t2’ then vehicleId end)) as ‘表2数量’from(SELECT ‘t1’ as flag, cf.vehicle_id as vehicleId FROM ota_campaign_feedback cf WHER...
分类: 其他 发布时间: 02-27 08:53 阅读次数: 0

spring cache设置指定Key过期时间

spring cache 集成redis是基于spring-data-redis组件开发的一直通过注解就能轻松实现redis缓存操作的框架。但原生的spring cache不支持缓存过期,默认都是没有过期时间的,以下实现自定义缓存过期时间。spring-data-redis版本是1.8.11,所以需要使用此版本或者兼容此版本的其他版本。先看spring的RedisCacheManager类代...
分类: 其他 发布时间: 02-27 08:53 阅读次数: 0

spring cache实现自定义redis过期时间

前一篇文章(spring cache设置指定Key过期时间)已经提到过怎么实现spring cache自定义过期时间,但是拿来使用后,被吐槽不够优雅(也是醉了),也对,身为一个有追(不)求(服)心态的程序猿,就应该做到更好。重新梳理后,大概思路是这样的:自定义一个注解@TimeToLive,包括过期时间、和时间单位方法上增加自定义注解@TimeToLive定义一个切面,利用spring ...
分类: 其他 发布时间: 02-27 08:53 阅读次数: 0

mysql insert 时出现Deadlock死锁场景分析

案例一:有一张表A,先更新,如果影响行数为0,则执行INSERT插入数据。很常见的场景,在生产上也跑了很久,没有出现什么问题。但是有一次在测试环境做压测时居然出现了死锁,Deadlock found when trying to get lock; try restarting transaction因为对mysql锁不熟悉,为什么insert也会死锁,不是一般在update的时候会死锁吗?...
分类: 其他 发布时间: 02-27 08:53 阅读次数: 0

MYSQL虚拟列

ALTER TABLE ota_deviceADD COLUMN client_sv VARCHAR(50) AS (json_unquote(json_extract(attributes,’$.client.sv’))) VIRTUAL;
分类: 其他 发布时间: 02-27 08:52 阅读次数: 0

实现一个自定义的spring boot starter

spring boot大家都知道,是集成了spring的几乎所有类库,通过它核心的spring-boot-autoconfigure模块,结合一系列的starter来完成原本需要开发人员配置的各种xml和依赖jar的工作,开发人员针对自身需求,只要引入指定的starter即可。下面就来实现一个自定义的spring boot starter。主要功能是拦截所有controller请求,并打印出请求参数和header部信息。看了网上很多人都拆分成两个模块,autoconfigure模块和starter模块,
分类: 其他 发布时间: 02-27 08:52 阅读次数: 0

hashmap在jdk7和jdk8下的区别

数据结构:jdk1.7是数组 + 链表jdk1.8是数据 + 链表 + 红黑树key的hash计算jdk1.7将key的hashCode无符号右移后做异或运算 h ^= k.hashCode(); // This function ensures that hashCodes that differ only by // constant multiples at each bit position have a bounded /
分类: 其他 发布时间: 02-27 08:52 阅读次数: 0

一张图介绍spring bean生命周期

最近被问到spring bean的生命周期,发现自己答不出来-_-,整理一张图,做个笔记吧。
分类: 其他 发布时间: 02-27 08:51 阅读次数: 0

Activemq消息组件发布订阅ReDelivery消息重新投递

ActiveMQ 师出名门是 Apache 出品,最流行的,能力强劲的开源消息总线。是完全基于JMS规范的消息组件,并且容易集成主流spring框架,spring boot等,本文以spring boot集成实现生产者发送消息,消费者消费消息,以及消息重新投递。<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http:
分类: 其他 发布时间: 02-27 08:51 阅读次数: 0

ActiveMQ集成springboot项目集群高可用无效,启动失败

基于ZooKeeper和LevelDB搭建ActiveMQ集群,参考文章https://www.cnblogs.com/cac2020/p/9428255.html介绍来配置相关配置。刚开始还是很顺利的,消息正常消费,控制台可以打开。 为了模拟集群高可用,统一kill掉了其中的master节点。 再次启动该节点发现异常:No IOExceptionHandler registered, ignoring IO exception | org.apache.activemq.broker.BrokerSer
分类: 其他 发布时间: 02-27 08:51 阅读次数: 0

spring-kafka消费出现异常:Commit cannot be completed since the group has already rebalanced 消费者突然hung住停止消费

一天发现线上环境大量报kafka异常:CommitFailedExceptionorg.apache.kafka.clients.consumer.CommitFailedException: Commit cannot be completed since the group has already rebalanced and assigned the partitions to another member. This means that the time between subsequent
分类: 其他 发布时间: 02-27 08:51 阅读次数: 0

来个小总结吧

今天是2020年最后一天,想写点什么,但是感觉又没什么好写的,纠结…年初一顿操作猛如虎,定了一个个小目标,现在回头想想,真特么打脸。。自从11年毕业开始踏入社会,现在已有十载,不得不感慨岁月如梭,自己也从一个懵懂的小青年顺利发展成了大叔。从毕业到现在一直在IT领域发(混)展(吃),但是自己技术水平和自己的年龄不成正比,感觉这十年只收获了年龄,技术水平没有同步,现在想想,真惭愧,很后悔。毕业后前两年的我:本人二本毕业,非985、211,在广东省还排上号,外省压根没人知道,学校是出了名的汉子多。 刚
分类: 其他 发布时间: 02-27 08:50 阅读次数: 0

图片的马赛克处理

图片的马赛克处理原理如下:图像打码其实也是图像卷积操作中,空间域滤波的一种方式,用一定大小的滤波器对马赛克范围内像素进行操作。实现过程:将需要打马范围按照滤波器大小划分为多个区块,取滤波器范围内像素,求取均值,再将均值赋值给范围内每一个像素,滤波器再滑到下一个区块。package com.itinspur.demo;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;impo
分类: 其他 发布时间: 02-27 08:50 阅读次数: 0

分页的实现以及Mybatis的分页插件PageHelper的使用

在做项目时,分页属于很常见的小功能,但通常都会有很繁琐的封装,在这里介绍一款非常实用的插件——————分页插件pagehelper,能满足我们工作中的基本需求。PageHelper是国内的一款非常优秀的一款开源的mybatis插件,它支持基本主流与常用的数据库,例如mysql,oracle,DB2,SQLite,Hsqldb等接下来介绍一下PageHelper的使用例子如下...
分类: 其他 发布时间: 02-27 08:50 阅读次数: 0