- 博客(29)
- 收藏
- 关注
原创 天啦撸,甩锅不成,程序员只好含泪修复bug
1.前言最近项目有个需求:一个内部派单系统,同事反馈:来一个活儿系统就立马派给我,我的工作永无结束之日。程序员小哥们能不能在系统控制每日派单上限,每日派单超过这个上限就别分给我了,我想早点下班偶遇我未来的女朋友。嘤嘤嘤…“年轻人,勇敢的去追求爱情吧,剩下的交给我”望着同事心满意足下班的背影,我冷笑,“哼,年轻,丝毫不懂工作的乐趣。”2.开心的改造代码咱先梳理下逻辑:1.一天24小时随时都有可能来新订单。原本逻辑为新来一订单,系统会根据某些规则,立马下发给用户。2.不同订单会派给不同角色下的用
2020-06-28 11:22:17
4706
1
原创 回溯法小结,简单一招鲜
回溯法小结1. 前言2. 思想3. 一招鲜框架4. 一个有意思的手表问题1. 前言Leetcode上也就做了小10道回溯法题目,都是挑简单/中等的题目做的。谈不上帮大家深入此类题目解答,只是分享自己做题心得。2. 思想回溯法,我把它称为“聪明穷举法”,它的思想可以总结为:“递归+剪枝+取消已做的选择”1。一般递归是穷举所有可能的情况,最后判断是否符合题目要求。一般递归缺点是会出现明显不符合题意的结果(如Leetcode22题会出现"((((((“的情况)。而回溯法也有用到递归,但它的"聪明"之处在
2020-05-19 18:22:31
561
原创 Java如何使用Label标识符
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2020-04-19 17:38:31
847
原创 完蛋,手写RabbitMQ客户连接池(channel池),spring版本太低的痛苦
前言:维护公司项目,用的是JDK6 + spring2.5.6.SEC01,需求是实现一个rabbitmq客户端发送消息的工具类。太难了~非springboot项目,无法直接配置使用rabbitTemplate;版本太低不能也不敢修改spring版本,无法使用amqpTemplate;尝试直接使用官方rabbitmq-java客户端amqp-client,每次发送都得创建和销毁channe...
2020-01-20 11:00:46
2706
2
原创 (完整版)springboot2.X整合shiro,实现shiro-redis分布式session、用户登录和权限控制
公司新项目用的是shiro做权限控制,一直说写一篇shiro的文章,一直拖着没写。马上过年了, 这债该还了呀。。。项目基于springboot(2.1.7.RELEASE) + mybatis-plus(3.2.0) + shiro-redis(3.2.3)知识储备原理参考:1、shiro框架详解。2、Shiro权限管理框架详解。有些名词还是得先了解:Subject:主体,...
2019-12-22 16:53:44
1467
原创 MyBatis-Plus公共字段自动填充无效排查
目录前言MetaObjectHandler配置entity字段注解复现原因如何解决但有疑问前言 公司系统,mybatis-plus(v3.1.0)配置了MetaObjectHandler公共字段自动填充,一直以来都使用良好。昨天发现了个BUG——某些service方法更新时,不会自动填充edit_time,遂排查。先说问题说在:XXService....
2019-12-18 11:22:17
11191
6
原创 聊聊JDK8之Optional解决NullPointerException
老早以前就听说过Optional可以解决开发过程中的空指针异常,中途看过几篇博客,但一直没有下手的勇气。5月底公司有个新项目开展,技术栈更新了许多,再加上看见新公司同事用到了JDK8的stream流操作集合,心里也痒痒,就拿Optional来开刀了。中途也遇到了几个小小的坑,记录下来仅供参考。 主要参考这位大佬的博客:【原创】JAVA8之妙用Optional解决NPE问题...
2019-08-18 19:33:35
299
原创 mongoTemplate查询指定字段(spring-data-mongodb:2.1.3.RELEASE)
/** * @param id id * @param fields 要查询的字段 * @return */ public InfoSupplementEntity findTest(String id, List<String> fields) { Query query = new Query(Cri...
2019-06-26 18:27:56
4474
原创 Mybatis-Plus使用心得——小白给小白的入门笔记(SpringBoot2.X)
之前自己练手的时候用过Mybatis-Plus,但现在公司项目中也用到了,也还是记录一下吧。也还是看官方参考文档和代码示例来的,Mybatis-Plus版本:3.1.0。使用到的有:逻辑删除,乐观锁,自动填充,通用枚举,代码生成。1.逻辑删除1.1 application.yml配置逻辑删除和非逻辑删除的值,这里设置逻辑删除为1,未删除为0。mybatis-plus: globa...
2019-06-26 17:46:19
775
原创 Maven推送本地jar包到远程仓库---nexus
前几天在commons-tool工程下新建了几个日期相关的公共方法,本地测试没有问题,但到了小伙伴的电脑上,我新加的公共方法报错,原因是没有把commons-tool工程打包推上远程仓库。老大叫我推一下到远程仓库,啊?推远程仓库?怎么推?我先表面上答应着,回到自己位置上“面向百度编程”一顿操作。记录一下:1.配置pom.xml<?xml version="1.0" encoding...
2019-06-25 20:05:23
4722
1
转载 SrpingBoot启动类不添加@ComponentScan也能自动扫描
自己在学习SpringCloud时,遇到了上述疑问。学习视频上没有加@ComponentScan也能自动扫描注解,但公司同事加了@ComponentScan注解,问题:为什么SrpingBoot启动类不添加@ComponentScan也能自动扫描?参考大佬博客——SpringBoot使用 SpringCloud Fegin 后无法自动扫描接口定义和接口实现把 JAVA 接口定义和接口...
2019-05-10 17:40:43
5995
1
原创 Memcached入门篇——Windows安装及cmd操作(不涉及客户端)
这两天在学习使用Memcached,全程参考菜鸟教程——菜鸟教程,算是很基础的入门篇吧。首先安装Memcached:分<=1.4.5版本以及>1.4.5版本。>1.4.5版本:既然入门,那就用最新的版本(截止至2019年5月8号,最新版本1.4.5)吧。压缩包很小,找个路径解压之后也就两个文件,memcached.exe和pthreadGC2.dll。1.先把Me...
2019-05-08 17:43:17
1190
原创 Java随机数Random,ThreadLocalRandom,SecureRandom,Math.random()
阿里巴巴JAVA开发手册提到:. 【推荐】避免 Random 实例被多线程使用,虽然共享该实例是线程安全的,但会因竞争同一seed 导致的性能下降。说明:Random 实例包括 java.util.Random 的实例或者 Math.random()的方式。正例:在 JDK7 之后,可以直接使用 API ThreadLocalRandom,而在 JDK7 之前,需要编码保证每个线程持有...
2019-02-21 14:15:40
590
原创 centos内网安装软件
我之前写过一篇文章:我是如何一步步把客户的两台服务器给弄崩的,客户的内网服务器安装部署环境遇到的坑,但最近找到了一个更好的内网安装软件方法,不需要一个个去下载rpm包,使用到的是yum离线安装方法,参考:只具备内网的服务器通过yum安装软件。1.在具备外网访问的服务器上启用yum缓存,这样本地就不会删除安装包及其依赖包了。vi /etc/yum.conf修改keepcache=1,开...
2019-02-18 17:05:14
1840
1
原创 redis主从哨兵配置要三思
安装环境:centos7.5 + redis5.0 +redis.clients.3.0.1最近在公司搭建了几台服务器环境,mongo + redis + tomcat + JDK + elasticsearch + rabbitmq,博主不是运维,是个java开发,linux命令只限于会发布tomcat。公司安装redis是主从配置,主是aof追加,从数据库是rdb快照备份。但中途百度的时候...
2019-01-23 14:46:39
626
1
原创 我是如何一步步把客户的两台服务器给弄崩的
写在之前:服务器为CentOS7,博主不是运维,是个java开发。小菜鸡,今年刚毕业,linux命令只限于会发布tomcat。如果你看不懂下面这个命令,那么这篇文章可能对你有所帮助,避免踩坑。当然,深谙linux系统特性的大佬就不用往下看了,只是几个菜鸡互啄罢了。rpm -Uvh ./*.rpm --nodeps --force背景:客户给了我们两台24核128G的内网服务器,通...
2019-01-19 17:27:30
3326
转载 静态代理,JDK动态代理和CGLIB代理入门学习
之前面试时面试官问我:“你知道spring中有哪几种代理吗?” 啊?代理?啥子代理?VPN代理吗?嘿嘿,面试官你要种子直说啊......被刷下来了。好吧,入门学习下代理。为什么需要代理?参考大佬的博客:代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用...
2018-12-10 17:17:39
199
原创 SpringMVC中,或许是因为这个原因导致ServletFileUpload.parseRequest(request);list为null
之前公司做文件上传的业务,都是前端调用阿里的OSS,然后返回文件地址到后台。但最近有一个需求,需要后端实现文件上传的功能:前端调用接口传文件流和其他一些请求参数(form-data),后台上传文件,执行业务。用到了apache的文件上传组件,执行到ServletFileUpload.parseRequest(request)时,返回的list为null。先看代码:简化后的Controller:...
2018-11-16 11:07:28
1150
转载 java中try带个括号try(){}有什么用?——redis自动关闭
从 Java 7 build 105 版本开始,Java 7 的编译器和运行环境支持新的 try-with-resources 语句,称为 ARM 块(Automatic Resource Management) ,自动资源管理。也就是说,数据流会在 try 执行完毕后自动被关闭。——参考大佬博客以前操作redis都是这样写的: Jedis jedis = null; ...
2018-11-15 10:06:23
7164
1
转载 CSRF攻击简单原理(转)
转载大佬的文章,好好观摩学习:CSRF攻击原理及防御:https://www.cnblogs.com/shytong/p/5308667.htmlCSRF是什么呢?CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。想要深入理解CSRF的攻击特性我们有必要了解一下网站session的工作原理。 session我想大家...
2018-11-08 10:58:26
192
原创 关于IDEA执行JDK动态代理debug时重复输出问题
这几天在学习java代理,自己练手写jdk动态代理,代理类在方法前后加了输出时间语句。遇到的问题如下:IDEA直接run运行没有问题,但debug下重复输出时间语句。Eclipse中run和debug都没有问题。Main方法:public class TestDynamicProxy { public static void main(String[] args) { ...
2018-10-08 11:01:36
3685
4
原创 一次删数据而认识的CountDownLatch和CyclicBarrier
公司之前有个任务,要求删除一张数据库表里面2018/2/1之前的数据。这张表里面存放的是车辆定位数据,一辆车每天能产生4000+条定位数据,所以整个表蛮大的,有65亿+条数据。而且还有要求:根据每个地区要统计出来这个地区删除了多少条数据。其中2月1号之前的有10亿多条。当然这是删除完之后才统计出来的。一开始是这样做的:查询某个地区,时间在2018/2/1之前的数据,用Mongo游标hasNex...
2018-09-17 13:48:43
291
原创 interrupt相关的方法
停止当前线程有Thread.stop()方法,但是这个方法已经被标记为@Deprecated了,那么替代它的方法是什么呢?interrupt。它有三个长得很像的方法:interrupt(),isInterrupted(),interrupted()。第一:MyThreadA.interrupt():给MyThreadA线程设置一个中断标志。(注意,这里不同于stop()方法,并不是直接中断...
2018-09-03 18:23:57
3543
原创 scheduleAtFixedRate()踩的坑
公司有个定时任务,跑了10+天挂了,看日志没有任何的错误信息,查找一番发现问题所在,记录一下。一直以为scheduleAtFixedRate()和scheduleWithFixedDelay()这两个方法的区别是,scheduleWithFixedDelay()是延迟任务,scheduleAtFixedRate()是定时任务: ScheduledExecutorServic...
2018-08-31 14:41:38
24558
4
原创 synchronized对象锁,锁的是什么?
昨天看博客看到这样一段代码,说是看似线程安全,但实际上并不是,参考大佬一个看似线程安全的示例:class ListHelper <E> { public List<E> list = Collections.synchronizedList(new ArrayList<E>()); public synchronized bo...
2018-08-27 14:03:21
8518
3
原创 被自己蠢哭了的 Runnable.run()方法
之前一直都是用new Thread().start()方法跑线程,昨天撸代码的时候,想起听哪位大佬和我提过,实现Runnable接口比继承Thread类要好。那就实现接口试下吧,结果出问题了,回想起来,真是被自己蠢哭了。。。我的代码:public class TestMain1 { public static void main(String[] args) { ...
2018-08-23 19:18:53
28057
9
原创 java执行cmd命令,调用ffmpeg报错Concat error - No such filter '[0,0]'解决方法
最近公司有一个公交项目,要生成报站语音,采用的是 报站前缀 + 站点名 + 报站后缀,3个MP3文件拼接的方式,拼接成一个完整的语音,且需要转码率和比特率,使用到了ffmpeg。去网上找了一些ffmpeg相关的命令:音频转码:ffmpeg -i **.mp3 -ar 8000 -ac 2 -y -b:a 32k -vol 400 **.mp3音频拼接://音频拼接(1) ...
2018-08-03 14:59:59
5811
6
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人