Spring默认线程池 simpleAsyncTaskExecutorSpring异步线程池的接口类是TaskExecutor ,本质还是 java.util.concurrent.Executor,没有配置的情况下,默认使用的是 simpleAsyncTaskExecutor@Component
@EnableAsync
public class ScheduleTask {
    Simp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-13 06:52:08
                            
                                61阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种:  1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象;  2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象;  3. 修改一个静态的方法,其作用的范围是整个静            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-14 16:59:31
                            
                                24阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            静电容键盘一直是高端键盘的代名词,但凡是体验过静电容键盘的用户都对静电容键盘优秀的做工用料和独特的手感难以忘怀,这其中血统和手感最为纯正的当属是使用了Topre技术的HHKB和REALFORCE燃风,两个品牌为市场提供了多款经典键盘产品。吸引了不少用户购买。由于对键盘功能不够了解,部分REALFORCE用户向我们咨询了不少的使用问题。本篇文章将给大家的问题做集中解答,以方便更多的用户了解。                
                
         
            
            
            
            需求:在tomcat启动时开启一个定时任务。想法:容器启动时执行方法,最容易想到的就是servlet中可以配置load-on-startup,设置一个正整数也就可以随容器一起启动。问题:上面的方法很好,但是由于定时任务需要去操作数据库,而项目采用了spring的依赖注入来管理对象,而servlet并不受Spring的管理。若此时在servlet中注入Spring管理的对象,则会报错:javax.n            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-24 16:54:02
                            
                                152阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport implements ConfigurableBeanFactory {
    public Object getBean(String name) throws BeansException {
        return doGetBea            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-16 09:54:14
                            
                                66阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            目录1. 死锁问题2. 锁续命问题3. 主从锁失效的问题4. lua 脚本做扣减库存5. 使用 redis 分布式锁做扣减库存6. lua 和分布式锁的优化7. 并行转串行思路8. redis 和 zk 分布式锁比较 1. 死锁问题场景: 当用 redis 做分布式锁时,当 A 用户竞争锁成功,A 用户所在的主机挂了,这时候还没有来得及释放锁,那么其他用户去用 setnx 指令去竞争锁时发现 r            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 15:48:49
                            
                                144阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一下Spring Boot启动的第二阶段是调用run()方法,其中会返回一个ConfigurableApplicationContext对象,ConfigurableApplicationContext其中继承了接口ApplicationContext、Lifecycel和Closeable,是Spring运行过程中的一个上下文环境,在ApplicationContext的基础上增加了一系列配置应            
                
         
            
            
            
            大年初二,朋友问了我一个技术的问题(朋友实在是好学,佩服!)开启10000个线程,每个线程给员工表的money字段【初始值是0】加1,没有使用悲观锁和乐观锁,但是在业务层方法上加了synchronized关键字,问题是代码执行完毕后数据库中的money 字段不是10000,而是小于10000 问题出在哪里?Service层代码:SQL代码(没有加悲观/乐观锁):用1000个线程跑代码:简单来说:多            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-26 15:08:05
                            
                                52阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、事务简介1、事务简介事务(Transaction) 是指作为单个逻辑工作单元执行的一系列操作。2、事务的特性A、原子性(Atomicity)表示组成一个事务的多个数据库操作是一个不可分隔的原子单元,只有所有的操作执行成功,整个事务才提交,事务中任何一个数据库操作失败,已经执行的任何操作都必须撤销,让数据库返回到初始状态。B、一致性(Consistency)事务操作成功后,数据库所处的状态和它的            
                
         
            
            
            
            一、降低耦合解耦场景在互联网开发的设计中使用的也是非常频繁,如:这里需要一个注册完成事件推送消息、用户下单我会发送一个MQ、收到我的支付消息就可以发货了等等,都是依靠事件订阅和发布以及MQ消息这样的组件,来处理系统之间的调用解耦,最终通过解耦的方式来提升整体系统架构的负载能力。其实解耦思路可以理解为设计模式中观察者模式的具体使用效果,在观察者模式中当对象间存在一对多关系时,则使用观察者模式,它是一            
                
         
            
            
            
            Bean,就是由 IOC 容器初始化、装配及管理的对象。 在IOC容器启动之后,并不会马上就实例化相应的bean,此时容器仅仅拥有所有对象的BeanDefinition(BeanDefinition:是容器依赖某些工具加载的XML配置信息进行解析和分析,并将分析后的信息编组为相应的BeanDefinition)。只有当getBean()调用时才是有可能触发Bean实例化阶段的活动。因为当对应某个b            
                
         
            
            
            
             readOnly=true表明所注解的方法或类只是读取数据。 readOnly=false表明所注解的方法或类是增加,删除,修改数据。如下图所示:数据库隔离相关内容:在一个应用中,依据事务的隔离级别将会有三种情况发生。    ◆脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。    ◆ 不可重复读(non-repeatab            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-09-02 15:43:23
                            
                                41阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            MySQL(InnoDB)是如何处理死锁的一、什么是死锁官方定义如下:两个事务都持有对方需要的锁,并且在等待对方释放,并且双方都不会释放自己的锁。这个就好比你有一个人质,对方有一个人质,你们俩去谈判说换人。你让对面放人,对面让你放人。二、为什么会形成死锁死锁形成的条件,咱们再复习一下:互斥条件:一个资源每次只能被一个进程使用。占有且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放。不可强行            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-10 21:30:21
                            
                                37阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             
  作用: 
   
      作为保护机制,在服务宕机,网络等原因引起的服务不可用时,触发服务降级或者熔断以保证其他服务的可用。从而解决微服务的”雪崩效应“ 
   
     
    
  服务降级原理: 
   
   以下举例说明: 
   
      在未使用hystrix时,假设tomcat的线程池中有1000条线程提供连接。            
                
         
            
            
            
            一、基本概念 事务的隔离级别,事务传播行为见《事务之二:spring事务(事务管理方式,事务5隔离级别,7个事务传播行为,spring事务回滚条件) 》二、 嵌套事务示例2.1、Propagation.REQUIRED+Propagation.REQUIRES_NEW      package dxz.demo1;
@Service
public class Service            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-06 20:46:30
                            
                                377阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            ## Spring Boot 如何避免死锁
在现代微服务架构中,Spring Boot 是一个常用的框架。然而,在复杂的多线程环境中,死锁问题可能会导致应用程序出现严重的性能瓶颈和异常中断。本文将探讨如何有效避免在 Spring Boot 应用程序中发生死锁。
### 什么是死锁?
死锁是一种并发程序中的现象,它发生在两个或多个线程相互等待对方释放资源,从而导致这些线程无法继续执行。为了理解            
                
         
            
            
            
            # 如何解决"spring redis setNX 死锁问题"
## 概述
在使用Spring和Redis时,有时会遇到setNX方法导致死锁的问题。本文将介绍如何解决这个问题。
## 流程
下面是解决该问题的步骤:
| 步骤 | 描述 |
| --- | --- |
| 1 | 获取Redis连接 |
| 2 | 执行setNX操作 |
| 3 | 释放Redis连接 |
## 代码            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-06-05 05:03:40
                            
                                94阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            说我遇到的问题前请大家回顾一下spring的注解标注事务的几种,主要看标红的,其他的以后项目中用到在说,这个链接有对于嵌套事务的介绍注解解释REQUIRED表示业务方法需要在一个事务中处理,如果业务方法执行时已经在一个事务中,则加入该事务,否则重新开启一个事务。这也是默认的事务传播行为NOT_SUPPORTED声明业务方法不需要事务,如果业务方法执行时已经在一个事务中,则事务被挂起,等方法执行完毕            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-31 12:34:44
                            
                                318阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            why to do在版本的迭代中,我们毕然会面临数据表更新的问题。而这些更新,有些是可以通过spring jpa进行自动更新的,有些更新spring jpa则表式无能无力,所以只能采用手动的方法。本文将实现以下功能:假设当前共有3个发布的版本。分别为1.1,1.2,1.3,每个版本都有对应的应用程序及数据库。实现功能1:1.2版本的程序运行在1.1版本的数据库上时,自动将其更新为1.2版本所            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-06 15:11:11
                            
                                105阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1.Bean是否是代理对象
2.入口函数是否是public的
3.数据库是否支持事务(Mysql的Mvlsam不支持事务),行锁才支持事务
4.切点是否配置正确
5.内部方法间调用导致事务失效
因为this不是代理对象,可以配置 expose-proxy="true",就可以通过AopContext.currentProxy()获取到当前类的代理对象。
<! -- expose-proxy=            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-07 19:16:00
                            
                                23阅读
                            
                                                                             
                 
                
                                
                    