能力说明:
精通JVM运行机制,包括类生命、内存模型、垃圾回收及JVM常见参数;能够熟练使用Runnable接口创建线程和使用ExecutorService并发执行任务、识别潜在的死锁线程问题;能够使用Synchronized关键字和atomic包控制线程的执行顺序,使用并行Fork/Join框架;能过开发使用原始版本函数式接口的代码。
代码洁癖,喜欢阅读框架源码,热爱技术分享
想必工作中大家为了保证接口的稳定性与安全性都会对入参进行校验。五花八门的校验写法会让我们的代码不够整洁,本文将介绍如何使用SpringBoot为我们提供的参数校验器,并对其进行扩展,让其能够实现自定义校验。当然在一些互联网项目中,为保证接口的高性能,校验都是放在前端做的,但是在阿里开发规约中是这样说的越是简单的接口越不需要进行参数校验,越是复杂的接口越需要参数校验,因为复杂的接口试错成本很高,校验对接口性能的影响微乎其微。
相信有很多刚刚入坑程序员的小伙伴被一些代码搞的很头疼,这些代码让我们既感觉到很熟悉,又很陌生的感觉。我们很多刚入行的朋友更习惯于使用for循环或是迭代器去解决一些遍历的问题,但公司里很多老油子喜欢使用Java8新特性Stream流去做,这样可以用更短的代码实现需求,但是对于不熟悉的新手来说,可读性差一些。
Redis 的集群模式是否让你眼花缭乱呢?为什么有的时候三个,有的时候两个,有的时候六个,九个。其实当我们系统很小时有一个就够了,但是我们往往想做到读写分离,为数据搞一个备份,那么主从复制就来了。但是呢主从复制下,主节点挂了,只能手动去设置主节点,不能自动进行,这时哨兵模式就出现了,通过哨兵监控各个节点,主机挂了,哨兵感知到,就会有一个哨兵发起投票选举自己为领导者,从而由自己进行故障转移。但是主从加哨兵只能保证高可用与读写分离,并不能解决写并发的压力,然后多主节点的redis cluster就出现了,将三种模式整合,就构成最小六个节点的高并发,高可用的redis集群。
对于开发人员来说,阅读一些框架的源码,不光有助于提升我们自身的技术水平,还可以在遇到一些问题时快速定位问题的原因,也有助于我们去参加一些开源实践,轮子虽然不是我们自己造的,但是我们要懂如何造轮子。下面我们将一起走进 MyBatis 源码的世界。
前段时间遇到一个离谱的问题,用户的生日通过后端返回直接少了一天,debug半天发现每次在调试时数据库返回都是正确的值,但是接口响应体中莫名奇妙,减少一天。
随着微服务的普及,线上运行的服务越来越多,部署也会变的越来越频繁;随着一些列运维工具的发展使用,部署方式也越来越多样化,蓝绿发布,金丝雀发布,AB测试等等。这些都能极大的帮我们改善产品。
在前后端分离的开发模式中,经常会遇到跨域问题,即 Ajax 请求发出去了,服务器也成功响应了,前端就是拿不到这个响应,这就是跨域问题。那跨域问题又是如何产生的,我们又该如何去解决跨域问题呢?
对应cookie来说,浏览器的同源策略将会限制不同源间的访问,对于跨站和跨域来说对访问cookie的影响也是不同的。同站请求,对于使用HTTPS协议的API,浏览器会存储cookie,不论`samesite`的值;对于使用HTTP协议的API,浏览器会存储`samesite`的值为`Lax`和`Strict`的cookie。跨站请求,对于HTTPS协议的API返回的cookie,如果设置了属性:`secure; samesite=none`,则浏览器会存储cookie,XHR请求也会带上目标域的cookie。
作为Java程序员,SSM是很重要的基础。下边介绍最清晰的SSM整合 Spring 、SpringMVC、Mybatis 三大框架整合相关配置,三层分开配置 maven 的 pom 文件依赖。
在我们工作中经常会有一些报表,统计数据的一些接口需要对返回结果进行一下格式化的处理 case 函数就可以很好的帮我们做到。