自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 你的开发利器Spring自定义注解

自定义注解在开发中是一把利器,经常会被使用到。但是对于自定义注解,只是停留在表面的使用,没有做到知其然,而知其所以然。所以这篇文章就是来了解自定义注解这把开发利器的

2020-11-12 14:28:24 55

原创 SpringBoot分组校验及自定义校验注解

在日常的开发中,**参数校验**是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性。在此之前写过一篇[SpringBoot统一参数校验](https://juejin.im/post/6844904081660575752)主要介绍了一些简单的校验方法。而这篇则是介绍一些进阶的校验方式。比如说:在某个接口编写的过程中肯定会遇到,当xxType值为A,paramA值必传。xxType值为B,paramB值必须传。对于这样的,通常的做法就是在controller加上各种if判断。显然这

2020-09-22 22:35:37 101

原创 Beanutils造成dubbo反序列化失败?

今天下午,当我经过一个小时的奋”键“疾”码“,准备好好的审查一下(摸鱼)自己写的代码,经过一段时间审查(摸的差不多了,该下班了),得出一个结论我写的代码很优雅、精简。所以大手一挥提交代码,并在API管理系统上将xxx接口点了个完成。准备收拾东西走人了准点下班。然而事与愿违,没过多久前端大哥就@我了,说xxx接口有问题,麻烦处理一下。内心第一反应(你丫的参数传错了吧)卑微的我只能默默的回个,好的、麻烦把参数给我一下,我这边检查一下[微笑脸]。

2020-09-15 20:19:04 113

原创 由String,String Builder,String Buffer 引起的面试惨案

String,StringBuilder,StringBuffer的区别是啥?这个面试题估计每个JAVA都应该碰到过吧。依稀记得第一次面试的时候,面试官问我这个问题时,心想着能有啥区别不都是拼接字符串嘛。深入了解这个问题后,发现并不简单?

2020-08-31 23:04:19 136

原创 从0搭建属于自己的Jenkins持续集成平台
原力计划

Jenkins在日常工作中是一个非常重要的角色,帮助我们节省了大量构建的时间,俗话说的好自己动手丰衣足食,所以本文就从0开始搭建属于自己的Jenkins持续平台。主要包含,普通项目构建、流水线构建、多分支流水线构建并将构建结果辅以钉钉通知。

2020-06-24 15:38:33 231

原创 SpringBoot多邮件源发送邮件
原力计划

最近由于业务需要,需要使用邮件对用户进行通知,但是单个邮箱有发送限制,当推送量过多时,经常会出现失败,于是考虑使用多个邮箱进行发送,由于spring-boot-starter-mail不支持同时配置多个邮件源,所以决定自己动手实现。

2020-06-16 14:19:36 410

原创 面试问到AOP就该这样回答
原力计划

相信各位小伙伴在准备面试的时候,AOP都是无法绕过的一个点,经常能看到动态代理、JDK动态代理、CGLIB动态代理这样的字眼。其实动态代理是代理模式的一种。代理模式有静态代理、强制代理、动态代理。所以在认识AOP之前需要了解代理模式。

2020-05-18 23:29:05 553 1

原创 SpringBoot异步方法
原力计划

最近呢xxx接到了一个任务,是需要把AOP打印出的请求日志,给保存到数据库。xxx一看这个简单啊,不就是保存到数据库嘛。一顿操作猛如虎,过了20分钟就把这个任务完成了。xxx作为一个优秀的程序员,发现这样同步保存会增加了接口的响应时间。这肯定难不倒xxx,当即决定使用多线程来处理这个问题。终于在临近饭点完成了。准备边吃边欣赏自己的杰作时,外卖小哥临时走来了一句,搞这样麻烦干啥,你加个`@Async`不就可以了。

2020-03-21 21:59:10 88

原创 面试问到IOC我该如何回答呢?
原力计划

相信在面试中,只要问到Spring,基本都会抛出一个问题,说说你对Spring IOC理解吧?虽然在日常的开发经常会使用到,但是要回答起来,并不简单。大脑经过简单的头脑风暴后,蹦出了控制反转、依赖注入这样的词语。显然这些并不是面试官想听的。

2020-03-20 20:46:03 580

原创 生产RabbitMQ队列阻塞该如何处理?
原力计划

那天我和同事一起吃完晚饭回公司加班,然后就群里就有人@我说xxx商户说收不到推送,一开始觉得没啥。我第一反应是不是极光没注册上,就让客服通知商户,重新登录下试试。这边打开极光推送的后台进行检查。后面反应收不到推送的越来越多,我就知道这事情不简单。

2020-03-12 18:11:27 555 2

原创 Insert into select语句引发的生产事故

Insert into select请慎用。这天xxx接到一个需求,需要将表A的数据迁移到表B中去做一个备份。本想通过程序先查询查出来然后批量插入。但xxx觉得这样有点慢,需要耗费大量的网络I/O,决定采取别的方法进行实现。通过在Baidu的海洋里遨游,他发现了可以使用`insert into select`实现,这样就可以避免使用网络I/O,直接使用SQL依靠数据库I/O完成,这样简直不要太棒了。然后他就被开除了。

2020-03-10 11:59:51 3332 1

原创 不用代理加速git clone

Github不仅是全球最大的同性交友平台,还是一个巨大的代码库,包含个各种优秀的项目,对于爱学习的你,就忍不住想把源码下载下来,进行仔细研读一番。当敲下`git clone`的时候就开始漫长的等待。不管你是100M还是200M的光纤,速度永远是几十KB,这和**百度云**有点像。当然没有什么是充钱不能解决的,百度云可以这个当然也行。充钱开个代理,就能解决问题。如果你不想充钱那就请往下看吧。

2020-03-08 11:39:03 190

原创 一个基础的SpringBoot项目该包含哪些

建立一个全新的项目,或者把旧的庞大的项目,进行拆分成多个项目。在建立新的项目中,经常需要做一些重复的工作,比如说拷贝一下常用的工具类,通用代码等等。所以就可以做一个基础的项目方便使用,在经历新项目的时候,直接在基础项目上进行简单配置就可以开发业务代码了。

2020-03-07 22:28:24 168

原创 SpringBoot统一参数校验

在日常的开发中,参数校验是非常重要的一个环节,严格参数校验会减少很多出bug的概率,增加接口的安全性。也会减少对接时不必要的沟通。比如说:在对接的时候前端动不动就甩个截图过来说接口有问题,你检查了半天发现前端传递的参数有问题。针对以上:今天给大家分享一下SpringBoot如何实现统一参数校验。

2020-03-04 22:18:50 293

原创 设计模式-从风控链理解责任链模式

责任链是一种行为型模式。顾名思义,由多个有不同处理能力节点组成的一条执行链。当一个事件进来时,会判断当前节点是否有处理的能力,反之转入下一个节点进行处理。

2020-02-25 21:20:02 78

原创 搭建属于自己的FRP内网穿透

大家好我是不一样的科技宅,每天进步一点点,体验不一样的生活。今天给大家带来的是用frp搭建属于自己的内网穿透,方便在我们日常的开发中进行调试。同时是frp是开源并且是免费的,只需要一台云服务器即可搭建。

2020-02-02 15:14:15 232

原创 线上千万级大表排序该如何优化?

前段时间应急群有客服反馈,会员管理功能无法按到店时间、到店次数、消费金额 进行排序。经过排查发现是Sql执行效率低,并且索引效率低下。

2020-01-26 21:40:27 243

原创 设计模式-从开电脑店理解工厂方法

工厂方法是一种创建型模式。工厂类负责把实例化类时,复杂的过程透明化,同时避免大量实例化类的重复代码的出现。工厂方法模式(Factory method pattern)是一种实现了“工厂”概念的面向对象设计模式。工厂方法模式就像其他创建型模式一样,它解决了在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行

2020-01-21 16:11:31 31

原创 设计模式-组装电脑入门简单工厂

简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,是一种创建型的设计模式,关注于实例对象创建。由一个工厂对象通过判断传入的参数,决定创建出哪一种产品类的实例,将创建的细节透明化。

2020-01-15 23:33:28 30

原创 设计模式-从你的日常理解模板方法

模板方法可以认为是23种设计模式中最简单的一种了,虽然简单但是有些细节我们还是不能忽视的。模板方法是一种行为类设计模式。模板方法是一个定义在父类的方法,在模板方法中会调用多个定义在父类的其他方法,而这些方法有可能只是抽象方法并没有实现。模板方法仅决定这些抽象方法的执行顺序,这些抽象方法的实现由子类负责,并且子类不允许重写模板方法。

2020-01-09 22:31:15 50

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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