2025年6月7日
前言 最近都在不停的CRUD,属实很难,想着自己的编码风格属实需要提高,同时也感觉自己应该尝试一下在写代码时,尝试一下使用新的方式来优化自己的代码 因为最近在做一个数据统计的需求,需要根据不同的类型去统计数据,因为有两个地方需要的是相同的数据,所以就想着把每个数据都写成一个方法,并且也是因为每个数据的统计规则不同,那么问题来了,核心数据统计直接每个方法都执行
2023年12月10日
前言 已经在新的公司待了大半年了,在这大半年里面使用的技术就是Spring全家桶以及阿里家的一些框架,由于之前写代码有些放飞自我,导致一些隐藏的问题在现在慢慢的暴露出来了,最近就发现了一个依赖注入的问题 问题来源 因为公司项目有多个模块,有些web端使用的方法在移动端也需要使用,于是就使用了Dubbo来调用,减少重复工作。但是在最近启动项目的时候就经常报错
2023年11月25日
前言 最近学习了一个分布式的秒杀系统,其中大量的使用了Redis来做缓存,对于分布式系统基本都会使用Redis来缓存数据和做一个分布式的锁,在做缓存的时候时候最常见的就是缓存击穿,缓存雪崩,缓存穿透这几个问题,于是就查了一下资料,补齐了这部分的知识空缺 缓存雪崩 缓存雪崩是指大量的请求没有在Redis缓存中得到处理,从而导致请求都涌入到数据库中,导致数据库的
2023年3月22日
前言 之前写了关于Redis中的缓存击穿,缓存雪崩,缓存穿透的文章中,提到了分布式的情况下如果需要加锁就需要使用分布式锁,于是填坑来了😅 什么是分布式锁 对于一些数据安全要求较高的应用,我们在进行数据访问处理的时候,需要让线程依次排起队处理,不然就会出现数据的错误,如果是单机应用我们可以使用Snchronized和ReentrantLock来实现并发操作,
2023年3月22日
前言 最近在补充自己的知识,一直想学习一下网络编程,于是乎就开始了对于Netty的学习,因为在Java网络编程领域基本上就会立即想到Netty这个网络框架。对于Netty应用最广的就是网络聊天😀,因为一想到网络编程首先就会想到聊天室😂。我们入手就从一个简单的聊天案例开始。 Java的网络编程模型 在Java当中有三种编程模型:BIO,NIO,AIO BI
2023年3月4日
简介 SpringSecurity是Spring生态的安全管理框架,在现在主要以Spring生态为主的Java开发来说,使用SpringSecurity更加的便捷。 SpringSecurity的核心功能: 认证; 授权; 准备工作 创建一个SpringBoot项目会自动引入相关的依赖,我们只需要自己添加SpringSecurity的依赖就行, 我们把一些常
2023年1月18日
简介 之前将SpringSecurity的认证部分写了,现在将剩下的授权的基本操作归纳,同时完善之前认证遗留下的问题。 在以前进行权限验证时,可以交给前端来操作,判断用户拥有哪些权限就显示对应的操作按钮,这种操作在某些时候确实可以起到权限验证的作用,但是一旦用户知道了对应功能的接口就会出现安全隐患。所以我们在后台也需要进行权限的验证。 授权的基本流程 在Sp
2023年1月17日
前言 最近逛论坛的时候看到很多文章都在讲使用微信测试号来实现每日的消息推送,于是自己也简单学习了一下,然后尝试着做着玩玩。 账号和相关API申请 测试账号申请 首先需要申请一下微信的公众平台测试账号,申请完成之后就在可以看到自己的appID和appsecret 微信相关的API 模板ID,这个就是等下发送的消息的一个模板,我们向微信的服务器发送消息,它接收到
2023年1月6日
前言 反射机制是Java的一个重要特性,反射机制能够在程序处于运行状态的时候获取任意一个类的属性和方法。所以反射被称为java框架的灵魂。 反射的重要组成部分 Class对象: 任何运行在内存中的所有类都是该 Class 类的实例对象,每个 Class 类对象内部都包含了实例的所有属性。; Field成员变量: 描述一个类的属性,内部包含了该属性的所有信息,
2022年10月25日
