- 博客(8)
- 收藏
- 关注
原创 对于表单提交的防止重复提交
场景:方案:使用到的方法:代码:注解NoRepeat :@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)public @interface NoRepeat { // 默认30s long time() default 30L;}注解Tag :@Target({ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)p
2022-04-28 17:18:59
1225
原创 对象转换工具类
/** * @description: 对象转换工具类 原理:BeanUtils.copyProperties方法(浅拷贝) * @author: zk * @since: 2022-04-26 19:00:04 */@Slf4jpublic class ConvertUtil { /** * 列表转为某个对象列表 * * @param e * @param clz * @param <E> * @param &l.
2022-04-26 20:45:25
388
原创 利用自定义注解+Map+反射实现策略模式
场景:TODO思路:1.扫描所有有自定义注解的类通过反射put到map中(初始化类似与IOC启动流程)2.根据不同策略从map中获取对应的处理类处理业务代码实现:1.自定义注解/** * 标记类需要put到策略map中 */@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)public @interface PutInMap { // 策略模式名称 S...
2022-04-08 19:52:16
1034
1
原创 自定义注解+AOP+redis简单实现接口的重复提交问题
应用场景:接口幂等性是用户对于同一操作发起的一次请求或者多次请求的结果。有些用户会恶意点击某个按钮,服务器会执行很多无用的请求,虽然前端可以将按钮制灰也可以实现,但是有些人知道接口地址后会对某个接口用程序频繁发请求导致服务器崩溃。为了解决这个问题就要实现接口的幂等性。简单实现方案:采用IP/Token方式来标识用户,根据具体情况来选择。流程:1、用户第一次访问接口时,redis中没有存储该接口的信息,执行方法,并将用户+接口信息存redis设置过期时间存入。...
2021-11-18 16:02:30
993
1
原创 自定义注解+Aop实现简单的日志管理系统
目的:在项目中,经常要使用日志管理系统来记录操作日志,在spring AOP的典型实际应用中就有日志管理的应用场景,在这篇老帖中给出简单的实现方案(代码有不妥的地方,老手勿喷,指出后我会虚心学习)实践: 1.准备自定义注解/** * @Description: * @Author: the_pure * @CreateDate: 2021/11/18 10:05 */@Target({ElementType.METHOD})@Retention(R...
2021-11-18 12:10:41
325
原创 mysql集群-主从同步(自用笔记)
主从同步原理:TODO数据库准备:至少需要两台服务器,以后肯定是独立两台电脑,当然也可以使用虚拟机。本次采用安装多个服务(使用不同的端口)来代替服务器.一、环境准备:准备主库master:1.解压mysql安装包。2.修改my.ini文件:在[mysqld]下添加如下配置[mysqld]#二进制日志文件,主从重点文件log-bin=mysql-bin#服务ID随便取但是要唯一server-id=1#端口号 在单台机器上通过不同端口来模拟集群...
2021-11-14 18:30:40
1063
原创 mysql锁表的解决及慢sql定位(自用)
mysql的命令:#1.Mysql运行多久 单位sshow status like 'uptime';#2.CRUD执行次数#当前库的所有语句show status like '%Com_%'#当前库的查询语句show status like '%Com_select%'#当前库的插入语句show status like '%Com_insert%'#当前库的更新语句show status like '%Com_update%'#当前库的删除语句show status lik
2021-11-12 11:06:16
1309
原创 对JAVA的事务@Transactional的检验
一、首先事务的概念:保证一组操作要么全部都成功,要么全部都失败。二、在本文章中对事务的概念进行简单的检验。校验思路:1.准备在数据库中两张表Employee和Department2.在一个方法中对两张表进行插入数据3.人为制造异常来模拟运行的时候产生的异常。4.查看两张表插入数据的结果验证开始:1.代码执行的正常情况:两张表插入数据成功2.程序运行不正常情况:人为制造异常:运行结果报异常:表结果:department表插入了id为.
2021-08-07 15:39:54
1282
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人