- 博客(10)
- 收藏
- 关注
原创 简单记录多线程修改同一个变量的三种方式:synchronized、ReentrantLock、AtomicInteger
2个线程,对同一个值做累加。如何保证数据正确
2025-03-27 11:04:12
233
原创 如何使用postman10 mock一个接口并设置返回参数为json
如何使用postman v10来模拟mock一个接口,并且设置返回json格式。避免报错DecodeException、DecodeException
2022-09-25 20:42:29
2055
原创 结合ArrayList源码看fast-fail机制
fast-fail机制是一种错误检测机制,在遍历元素时很常见。结合ArrayList的源码来看迭代器、subList中的fast-fail机制。
2022-06-09 21:53:19
480
原创 SpringBoot切面Aspect未生效的原因
记录几个SpringBoot切面未生效的原因:1. 目标类未进入Spring生命周期2. 切面类未定义为bean3. 切面类未成功加载4. 切点定义错误
2022-06-05 13:04:13
14254
原创 Spring默认Bean为单例,有状态单例在多线程场景的问题
走查代码时发现有dubbo接口,将入参作为了类的成员变量。Spring内大多数注释默认是单例的,也就是说这样形成了一个有状态的单例。在单线程环境,或者入参固定的场景下,这样是没有问题的,但是在并发情况下,成员变量的获取可能会有问题。目录问题代码模拟造成原因解决方法1. 成员变量改为方法的内部参数2. 使用TreadLocal问题代码模拟为了方便使用@Service模拟问题接口:@Servicepublic class SingletonStateTestService { privat
2022-05-17 16:33:10
1415
原创 SpringBoot - 通过注解装配Bean的两种方式
目录使用@Bean注入容器默认指定name根据类型获取bean根据name获取bean使用@ComponentScan扫描注入容器默认属性自定义扫描路径过滤器设置依赖延迟注入使用@Bean注入容器默认直接在方法上加@Bean,Bean名称默认为方法名指定name允许使用@Bean("xxx")指定name,效果同@Bean(name = "xxx")对应类型重复的bean: @Bean("user") public UserDto initUser() { User
2022-05-15 17:45:48
1265
原创 JAVA8 - Optional中map、orElse、orElseGet是否执行
map:当Optional中对象为null时不执行Integer i = null;// 不报错,map中未执行Optional.ofNullable(i).map(n -> n + 1).orElse(0);orElse:一定会执行Integer i = 1, j = 10;// 结果j = 11; orElse中执行Optional.ofNullable(i).map(n -> n + 1).orElse(j++);orElseGet:当Optional中对象为null时
2022-05-11 10:30:24
3809
3
原创 Junit单元测试多线程
Junit单元测试多线程Main方法里执行多线程 vs 使用Junit测试多线程main方法调用结果Junit测试结果解决方法先说结论:Junit不支持多线程,在主线程执行完后,无论是否是守护线程,都会直接退出。导致子线程可能未执行结束。Main方法里执行多线程 vs 使用Junit测试多线程用于测试的多线程类:public class MultiThreadCls { public void func() { System.out.println("func start"
2022-04-18 14:06:04
5167
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人