logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

如何优雅规范编写Java代码

else并不会降低代码的复杂度,相反比较少见的写法可能会增加认知负荷,从而进一步增加了复杂度。else是为了对代码进行解耦合,方便扩展代码,最终方便对代码的维护。思路:定义一个注解,将需要校验的参数对象都标注该注解,利用SpringAOP,拦截该注解,将其中标注的参数取出,最后通过BeanValidator进行校验。是因为通常在编码过程中我们不只自己进行开发,通常需要一个团队来进行,开发好之后还需

文章图片
#java#开发语言
分布式ID详解

在分库之后, 数据遍布在不同服务器上的数据库,数据库的自增主键已经没办法满足生成的主键唯一了,这个时候就需要生成分布式。适用于并发不高,但是数据量太大导致的分库分表扩容,可能每秒最高并发最多就几百,那么就走单独的一个库和表生成自增主键即可。雪花算法相对来说还是比较靠谱的,毫秒数在高位,自增序列在低位,整个ID都是趋势递增的。不依赖数据库等第三方系统,以服务的方式部署,稳定性更高,生成ID的性能也是

文章图片
#分布式
分布式锁详解

它管理数据一致性,防止多个节点同时修改相同数据,处理资源竞争,保障事务原子性,避免任务重复执行,同时协调和同步节点操作,减少死锁的可能性。例如,在表中记录锁的创建时间,并定期检查是否超时,如果超时则自动释放锁。只有在比自己序号小的节点被删除后,才会再次检查自己是否成为最小的节点,进而获取锁。利用顺序节点实现锁的公平性,保证了锁的获取顺序。,查出来的数据是相同的,然后依次执行库存减一操作,此时库存会

文章图片
#分布式#java
SpringMVC与SpringWebFlux

SpringWebFlux相比较SpringMVC最大的优势在于它是异步非堵塞的框架,可以让我们在不扩充硬件资源的前提下,提升系统的吞吐量和伸缩性。而SpringMVC是同步阻塞的,如果你目前在SpringMVC框架中大量使用异步方案,那么WebFlux可能才是你想要的,否则使用SpringMVC才是你的首选。SpringMVC的核心思想是将MVC设计模式应用于Spring框架,实现了请求-响应模

文章图片
#spring#servlet#mvc
Netty详解

Netty是一个高性能、异步的网络应用框架,用于开发高效的网络通信程序。它是JavaNIO的一个抽象,简化了网络编程的复杂性,并提供了一系列高级功能,使网络编程变得更简单。Netty是一个高效的网络框架,专注于处理大量并发连接。它通过异步IO处理来避免阻塞,这让它在处理高并发时表现出色。Netty还利用了优化的内存管理和零拷贝技术,降低了性能开销。框架的灵活性也很高,开发者可以通过管道机制自定义数

文章图片
#java
软件开发的未来:AI 大模型与智能代码生成

例如,GitHub Copilot 就是一个典型的应用,通过结合 AI 大模型的技术,能根据开发者输入的函数名称、注释或参数等信息,智能地推测并生成完整的代码块。AI 大模型的应用远不止于自动化代码生成。AI 大模型能够将复杂的编程任务转化为简单的语言描述,开发者只需用自然语言描述他们的需求,AI 就能自动生成符合要求的代码。未来,AI 与开发者的协作将不再是单纯的代码生成,而是更深层次的合作,A

文章图片
#人工智能#驱动开发
到底了