自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 Java 多线程在项目中的实战应用

当我们在项目遇到一次 IO 密集型的操作,会进行大量的数据库查询,我们可以考虑使用多线程来解决这个问题。

2023-04-26 13:32:29 1141

原创 ReentrantLock 源码详解

ReentrantLock 是 Java 并发包中提供的一种可重入锁,它比 synchronized 更加灵活,可以支持公平锁和非公平锁,同时还提供了一些高级功能,例如可中断、可限时等特性。

2023-04-18 13:39:06 300

原创 SpringBoot 项目通过 HttpServletRequest 获取 body 内容

@PostMapping("/test") public void test(HttpServletRequest httpServletRequest) { // 获取内容长度 int length = httpServletRequest.getContentLength(); // 新建缓存存放读取数据 byte[] buffer = new byte[length]; ServletInputStream in = null

2022-03-08 16:15:47 4422

原创 关于 Spring Cloud 全局异常处理的问题

最近在将公司项目改为 Spring Cloud,其中涉及到了全局异常处理的问题记录一下。 全局异常处理是通过 @RestControllerAdvice 这个注解完成的,这里就不在阐述。 首先我的全局异常处理是放在公共模块,然后通过 maven 引入各个微服务中 但是,这样的话是不会生效的,我们需要在微服务启动类中去扫描这个异常类配置所在的包 这样的话,Spring Cloud 中的全局异常处理就会生效了。 ...

2022-03-01 13:52:02 1847

原创 Docker-Compose 部署 Spring Boot + Mysql + Redis

Docker-Compose 部署 Spring Boot + Mysql + Redis 配置 Spring Boot 项目中 Mysql 和 Redis 的信息 spring: datasource: url: jdbc:mysql://主机地址:3306/account?useUnicode=true&serverTimezone=GMT%2B8&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetri

2021-12-09 14:58:21 1484

原创 后台无法获取前端传入header的问题

遇到一个特别蛋疼的问题,后台始终无法后去前端传入的自定义header,搞了一个下午,终于把最终的原因找到了。 首先了解一个知识点:过滤器如果发现是cors跨域复杂请求会先发送一个方法为OPTIONS的预检请求,这个请求是用来验证本次请求是否安全的。 所以这就是问题的所在:第一次去判断header是否存在的时候,并不是前端传过来的请求,而是这次OPTIONS的预检请求,所以当然header始终为空啊! 解决方法 判断是否为OPTIONS请求,如果是则直接跳过这次请求就好。 if ("OPTIONS".equa

2021-11-18 17:54:53 1907 2

原创 Zuul 实现网关鉴权

Zuul 实现网关鉴权

2022-12-05 15:09:00 491

原创 关于 MySQLTransactionRollbackException 异常的排查经历

事务死锁

2022-09-20 21:58:35 1137

原创 内联查询实战案例

内联查询实战案例

2022-06-07 16:29:05 391

原创 事务管理与分布式锁冲突问题

事务管理与分布式锁冲突问题

2022-06-06 16:38:40 876

原创 分布式锁实战-用户抢单

分布式锁实战-用户抢单 首先说下业务需求:订单产生以后,用户通过平台进行抢单,只有一个用户最终会拥有订单。 再来看一下项目架构: 首先用户统一调用接口服务 api-order ,再由 api-order 调用 (负载均衡) service-order 集群。 我们先看一下如果不加分布式锁会发生什么情况。 api-order 代码: @GetMapping("/acceptOrderByExpert") public String acceptOrderByExpert(String ord

2022-05-19 17:56:46 716

原创 Eureka 优化

Eureka 优化 自我保护优化 自我保护机制 Eureka在15分钟内收到服务端心跳数小于Eureka本应该收到的总心跳数 * 自我保护阈值(默认0.85)就会触发。该机制默认开启。等网络恢复后退出自我保护 自我保护常用配置 eureka: server: # 自我保护开关,默认开启 enable-self-preservation: true # 自我保护阈值,默认0.85 renewal-percent-threshold: 0.85 # 自我保护剔除时

2022-02-09 16:21:14 601

原创 Java 内部类的总结

Java 内部类的总结 使用内部类的好处 内部类的方法可以访问该类定义所在域中的数据,包括私有数据 内部类可以对同一个包中的其他类隐藏 当想定义一个回调函数且不想编写大量代码的时候,使用匿名内部类比较便捷 内部类访问外部类 内部类既可以访问自身的数据域,也可以访问创建它的外围类对象的数据域 原理 语法 public class OuterClass { public static void main(String[] args) { OuterClass outerClass

2022-01-17 13:24:36 317

原创 Vue 拦截器的使用

Vue 拦截器的使用 新建 axios.js 文件 import axios from 'axios' import store from '../store' axios.defaults.headers.common['token'] = '123' // 添加请求拦截器 axios.interceptors.request.use(config => { console.log(config) config.headers.common['token'] = store.getter

2021-12-17 09:52:56 373

原创 Spring Boot 项目搭建模板

Spring Boot 项目搭建模板 首先来看一下项目结构 看看项目实际都集成了哪些模块 全局异常处理 响应码枚举 自定义统一响应体 全局处理响应数据 拦截器 全局跨域 阿里短信服务 阿里 OSS 服务 MyBatis MySQL Redis Swagger JWT Lombok Https 认证 全局异常处理 首先来看一下代码的目录结构 自定义异常 /** * @description: 全局异常处理类 * @author: wubowen * @date: 2021/5/25 0025

2021-12-09 14:29:32 1291

原创 VMware + CentOS7 + NAT 配置外网连接

1.设置虚拟机网络连接方式为NAT模式 2.修改相关VMware设置 VMware-编辑-虚拟网络编辑器 如下图所示勾选并且填写子网以及子网掩码(可以自己随意填写) NAT设置,网关地址一般以2结尾 3.Linux系统内设置 进入此路径:/etc/sysconfig/network-scripts,编写ifcfg开头的配置文件,注意:文件名字个人可能不同,我的是:ifcfg-ens33。修改命令:vi ifcfg-ens33 修改ifcfg-ens33相关配置,BOOTPROTO必须

2021-08-24 13:09:30 300

原创 实现自己的分页工具类

实现自己的分页工具类 需求:根据传入的页数、每页条目数、List数组进行分页 实现 /** * @description: 分页工具类 * @author: wubowen * @date: 2021/7/5 0005 15:50 */ public class PageUtil { public static PageEntity startPage(int pageNum, int pageSize, List data) { int total; //

2021-07-05 16:53:26 142

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除