- 博客(273)
- 资源 (35)
- 问答 (1)
- 收藏
- 关注

原创 redis 缓存统一方法的封装
1. 我们日常用redis做缓存的方法逻辑是:查缓存,有就直接返回 没查到缓存,读数据库, 读取到,写缓存,并返回数据2. 我们现在对这个逻辑做一个统一封装(springBoot的基础上) 1. 设置redis 的序列化方式 @Configurationpublic class RedisConfig { @Autowired private RedisConnectionFactory factory; // 设置redis ...
2020-11-22 12:42:38
794
原创 java 函数相关的方法
Java8中的函数式接口详解(Supplier、Consumer、Predicate、Function)_java 8 的 consumer、supplier、predicate和function理解-优快云博客
2024-04-20 15:11:18
248
1
原创 提供一个sql关联优化的思路
就是 两个表的数据发生的范围 关联到 2张表上,主要的思路 就是。1、 做 表关联的时候,进行 时间范围的二次过滤;
2023-08-23 11:30:11
312
原创 tomcat线程池
Tomcat 的线程池,就是先使用核心线程数配置,再使用最大线程配置,最后才使用队列长度。JDK 的线程池,是先使用核心线程数配置,接着使用队列长度,最后再使用最大线程配置。
2023-08-17 17:56:09
174
原创 本地上传快照版本的jar 到nexus 私仓上面
mvn deploy:deploy-file -DgroupId=com.bstek.ureport -DartifactId=ureport2-parent -Dversion=2.3.0-SNAPSHOT -Dpackaging=jar -Dfile=D:/repo/com/bstek/ureport/ureport2-core/2.3.0-SNAPSHOT/ureport2-core-2.3.0-SNAPSHOT.jar -Durl=http://你得nexus上传ip:8081/repository
2023-08-04 10:52:05
409
原创 springBoot + mybatis-plus 实现监听 mysql的数据增删改的监听
以上就是使用Spring Boot + MyBatis-Plus实现MySQL数据增删改的监听的基本步骤。需要注意的是,如果不使用逻辑删除功能,则无法检测到数据删除操作。3. 创建监听器类,实现com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor接口。5. 对需要进行监听操作的实体类添加@TableLogic注解,启用逻辑删除功能。// 处理SQL语句,检测是否为对指定表进行的增删改操作。// 如果是,则发送通知给应用程序。
2023-04-12 11:05:17
7450
2
原创 mysql 的limit 分选
1. limit limit 底层官方 并不会做什么优化,只是会单纯的扫描表, 好比 limit N,10 底层会扫描N + 10 条数据,但是只会返回10条;仅此而已; 2. 关于limit的 优化 (以下ad 是主键,且自增) ---原sql : select tr.ad, tr.operation, ...
2022-05-26 21:21:50
369
原创 测试类-随机端口号
@Slf4j@ActiveProfiles("local")@RunWith(SpringRunner.class)@SpringBootTest(classes = {springBootApplication.class},webEnvironment= SpringBootTest.WebEnvironment.RANDOM_PORT)public class CommonServiceTest { }
2022-05-26 09:17:14
192
原创 git 代码统计
git log --author="你的提交名" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
2022-05-25 16:14:33
426
原创 关于 CRUD 方法的思考
新增 : 操作日志记录(不在业务层面,aop层面去统一处理;) 入参格式校验 参数是否合法; 是否 只接受要新增的数据,不存入 多余的字段直; 数据库的数据校验 数据重复校验; 客户重复点击新增的问题; 是否需要加 锁: 分布式锁 锁的key 怎么设计; 是否缓存 / 清理缓存数据; 是否 双写 数据; 双写 NOSQL; 双写冗余表,便于不连表查询; 修改 : 参照上面的新增; 删除 : 是否..
2022-04-28 23:44:06
371
原创 推荐一本 在线学习的高分 架构书
凤凰架构,来自周志明老师的架构书,对 没错 ! 就是那个 写了 《深入理解java虚拟机》的作者!凤凰架构:构筑可靠的大型分布式系统 | 凤凰架构建议哈,有一定研发经验的同学去看,这样会对架构有更深入的理解~...
2022-04-26 22:18:46
2103
转载 spring 详细讲解
有人说,“Java程序员都是Spring程序员”,老三不太赞成这个观点,但是这也可以看出Spring在Java世界里举足轻重的作用。基础1.Spring是什么?特性?有哪些模块?Spring Logo一句话概括:Spring 是一个轻量级、非入侵式的控制反转 (IoC) 和面向切面 (AOP) 的框架。2003年,一个音乐家Rod Johnson决定发展一个轻量级的Java开发框架,Spring作为Java战场的龙骑兵渐渐崛起,并淘汰了EJB这个传统的重装骑兵。Spring重
2022-04-23 13:33:32
2068
原创 同学,你的 method 把CPU跑冒烟了
先不急,听 笔者 娓娓道来嘛!最近,刚入职了一家 非互联网的公司(是从互联网公司来的,算是大 -> 小),不过这里很nice ,不卷,上下班也不打卡,自由度也比较高(虽然工作量也不小),以完事为主。但是入职不久,我就发现了一个问题(坑)。一: 就是 代码的读(查询),写(CUD)是2套系统来做的,比较割裂,这个只是其一,不是本文的重点,但是 肯定有这方面的原因在里面;重点, 第二个坑来了,可能是因为项目时间比较紧,导致 大家都是 以完成功能为主,导致代码写的...
2022-04-20 13:56:21
509
1
原创 关于springBoot 如何激活自动装配
回答:SpringBoot会将所有的功能场景都封装成一个一个的启动器,供开发人员使用,我们在使用的时候也可以直接去官网上找我们所需的启动器,直接将其引入获取启动器文档:Using Spring Boot背景说明1. 我们都知道springBoot 是集大成者,引用了需要的依赖 在 pom 中和 spring.factories 中pom 【部分截图】spring.factotries中的内容2. 通过pom 的 starter 的激活: 好比 下面的激活 s...
2022-04-19 15:43:39
1314
原创 服务的限流
服务为什么要限流? 由于计算机硬件资源的限制,所以对于服务器上的 服务要进行服务过载保护,所以要对 可承载的计算机资源请求 进行限流处理,来保障服务正常对外服务; 限流的方式: 流量计数; 滑动时间窗口; 漏桶; 令牌桶; 以上 四种方式都是保障请求限制; 分布式限流:微服务内部的请求限制; 实现方式:谈谈限流算法的几种实现 - 简书 学习资料:流量控制 | 凤凰架构 ...
2022-04-16 12:19:09
432
原创 关于服务重试的思考
重试的方式 数据库 + 定时任务 redis、mq的延时队列 重试的限制 一次拿出多少条数据进行重试: 防止好比 定时器 一次性从db中拿出的数据过多,导致内存占用问题; 同时注意每次数据库查询只拿关键的几个字段; 重试多少次,设置上限; 重试的期限,多少天内的数据进行重试; 重试的安全性 做好幂等性判断,比如根据某个id 去做判断处理,防止多次处理,导致数据安全性,冗余性的问题; 如果系统设计的有主动重试的方案,那么自动重试处理的时候,应..
2022-04-16 11:39:36
2756
转载 CompletableFuture的API使用
参考文章:CompletableFuture用法详解 - 知乎代码优化中关于CountDownLatch和CompletableFuture的使用 - 程序猿的漫漫长路JAVA支持的多线程开启方式根据Oracle官方出具的Java文档说明,创建线程的方式只有两种:继承Thread或者实现Runnable接口。 但是这两种方法都存在一个缺陷,没有返回值,也就是说我们无法得知线程执行结果。虽然简单场景下已经满足,但是当我们需要返回值的时候怎么办呢? Java 1.5 以后的Callable和
2022-02-15 00:13:48
1205
原创 nginx的负载均衡和故障转移
#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区proxy_temp_path /data0/proxy_temp_dir;#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为30GB。proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
2022-01-17 14:44:21
2601
转载 mysql 的一条语句的执行过程
著作权归https://pdai.tech所有。 链接:MySQL - 一条 SQL 的执行过程详解 | Java 全栈知识体系MySQL - 一条 SQL 的执行过程详解 前言 MySQL 驱动 数据库连接池 网络连接必须由线程来处理 SQL 接口 查询解析器 MySQL 查询优化器 存储引擎 执行器 初识存储引擎 Buffer Pool undo 日志文件:记录数据被修改前的样子 redo 日志文件:记录数据被修改后的样子 bin log 日志
2022-01-15 16:31:10
354
原创 关于新建表结构的看法
我得看法是数据库建表结构需要有2个主键数据库主键: id , 自增id, 索引类型 为:Btree(primary key)业务主键:uuid ,便于业务之间的交互和关联、查询, 索引类型为hash 索引比如 以下表结构模板CREATE TABLE `sys_user` ( `ad` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增id', `user_id` varchar(50) NOT NULL COMMENT '用户id...
2022-01-11 21:59:42
219
原创 查看cpu占用的进程和线程
问题:有时候java服务器还在运行,但就是没响应请求了/很慢思路:这种情况极大概率是死循环,要上服务器排查一下,看是哪个进程cpu有问题,然后具体看进程下哪个线程的cpu异常,打印该线程十六进制地址,把这地址作为过滤关键字,在Java堆栈信息找到该线程的栈信息,就能确定是在执行程序的哪段代码有问题,从而知晓原因。步骤:1、确定哪个进程PID的cpu异常高top或htop,找到cpu异常高的进程PID2、确定该进程下的哪个线程PID的cpu异常高top -Hp 进程PID,找到cpu异
2021-11-17 12:23:25
2343
原创 线程池引发的生产的事故
故障的结果: 响应很慢,乃至超时?查询日志: 所有的请求都已经正确执行了,但是仍然有很多接口响应较慢;初步分析原因: 网络,数据库,nginx,ingress日志详细查询原因: jetty 的线程池打满。线程池打满代码分析原因: 代码中的线程池:设置如下@Bean("xxxExecutor")public Executor taskExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecut.
2021-10-13 16:50:49
202
原创 npm install 使用
1. 先试试安装依赖 使用淘宝镜像# 安装依赖 npm install --registry=https://registry.npm.taobao.org2. 常见的node-sass 安装不了逐个试试下面的方法: npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ git config --global url."https://".insteadOf git:// npm instal
2021-09-30 16:51:31
692
转载 spring中@EventListener 的详解和使用
转载 :面了个35的程序员,让我莫名的慌了。。。(欢迎关注 原文作者 公众号: Java充电社)面了个35的程序员,让我莫名的慌了。。。原创路人甲Java路人甲Java2020-05-10收录于话题#Spring高手系列55个内容月底免费送书活动,这两天是最后的机会,大家尽快参与!面试官:看你是85年的我:嗯,35了面试官:那应该经验很丰富了,那我们来聊聊spring吧我:好,这块我用了10几年了,你随便问吧面试官:Spring中的事件用过么?我:用过...
2021-09-26 09:29:38
30902
24
基于web和Swing的投票管理系统
2016-09-30
mysql连接数据库的经典实例(学生管理系统)
2015-10-02
java简易版万年历
2015-09-05
draw.io-11.1.4-windows-installer(1)(1).exe
2019-08-15
jquery 滑动验证插件
2018-05-28
pdf转换成word
2018-05-21
jenkins.war
2018-05-15
redis3.2的配置文件
2011-06-29
为什么hbulider中的字体横向显示
2015-11-24
TA创建的收藏夹 TA关注的收藏夹
TA关注的人