我们开发的时候常常会遇到多线程事务的问题。以为添加了@Transactional注解就行了,其实你加了注解之后会发现事务失效。原因:数据库连接spring是放在threadLocal里面,多线程场景下,拿到的数据库连接是不一样的,即是属于不同事务。本文是基于springboot的@Async注解开启多线程,,并通过自定义注解和AOP实现的多线程事务,避免繁琐的手动提交/回滚事务  (CV            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-12 05:50:16
                            
                                39阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            用 Spring 的 @Transactional 注解控制事务有哪些不生效的场景?不知道小伙伴们有没有这样的经历,在自己开心的编写业务代码时候,突然某一个方法里的事务好像失效了。然后 debug 跟踪代码时发现,自己第一步的 insert 或者 update 的数据在语句执行完毕后,数据库中并没有立即出现更改或保存完的新数据。所以一度怀疑spring 的事务失效了。那么这篇文章就来总结一下,大家            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-16 20:54:59
                            
                                25阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、背景知识 
  在 
 【Spring实战】Spring容器初始化完成后执行初始化数据方法一文中说要分析其实现原理,于是就从源码中寻找答案,看源码容易跑偏,因此应当有个主线,或者带着问题、目标去看,这样才能最大限度的提升自身代码水平。由于上文中大部分都基于注解进行设置的( 
 Spring实战系列篇demo大部分也都是基于注解实现的),因此就想弄明白Spring中注解是怎么工作的,这个也是分析            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-03 23:28:51
                            
                                63阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            定时器spring中将定时器叫配置计划 配置:@Configuration
@ComponentScan("springBase.scheduledTask")
@EnableScheduling // 开启配置计划任务
public class JavaConfig {
}异步任务定义:@Service
public class ScheduledTaskService {
	private s            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-20 12:40:58
                            
                                106阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            pring中管理的bean实例默认情况下是单例的[sigleton类型],就还有prototype类型按其作用域来讲有sigleton,prototype,request,session,global session。spring中的单例与设计模式里面的单例略有不同,设计模式的单例是在整个应用中只有一个实例,而spring中的单例是在一个IoC容器中就只有一个实例。但spring中的单例也不会影响            
                
         
            
            
            
            SpringBoot中@Scheduled实现多线程并发定时任务1.背景Spring Boot实现定时任务非常容易,只需要使用Spring自带的Schedule注解@Scheduled(cron = "0 */1 * * * ?")
    public void cancleOrderTask() {
        //实现业务
    }记得在启动类中开启定时任务@EnableSchedul            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-07 11:02:11
                            
                                107阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            常用的spring注解@Controller(运用于表现层)使用@Controller注解标识UserAction之后,就表示要把UserAction交给Spring容器管理,在Spring容器中会存在一个名字为"userAction"的action,这个名字是根据UserAction类名来取的。如果@Controller不指定其value【@Controller】,则默认的bean名字为这个类的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-23 21:52:11
                            
                                111阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            主要组件分工消费者:Rbbion:负载均衡,响应超时,重试Hystrix:降级、熔断、依赖隔离、异步任务、请求合并Fegin:拟RPC接口调用,整合rbbion+hystrix注册中心:Eruka:AP分布式注册中心网关:Zuul:基于Servlet实现的网关,整合rbbion+hystrixGetway:配置中心:Config:hystrix-dashboard turbine 多个同名线程池,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-19 12:10:36
                            
                                39阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            如何使用spring中的@Async注解优雅的实现多线程首先我们要知道什么是多线程?什么是进程?什么是线程?什么是线程安全?Async实现接口多线程 首先我们要知道什么是多线程?居然提到多线程就不得不说说进程与线程什么是进程?电脑中时会有很多单独运行的程序,每个程序有一个独立的进程,而进程之间是相互独立存在的。进程是操作系统资源分配的基本单位。简单一句话来说就是“一个执行中的程序的实例!”什么是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-09 16:10:31
                            
                                80阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            作:项目源码已经托管到Git...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-13 13:55:45
                            
                                104阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            在搭建springBoot+dubbo项目过程中,需要导入什么dubbo包,在application.properties中,有需要哪些注解配置一、pom.xml导入第一种:<!--dubbo-->
      <dependency>
          <groupId>io.dubbo.springboot</groupId>            
                
         
            
            
            
            Spring使用注解配置bean1.使用注解配置bean步骤
    (1.在配置文件中添加context命名空间 
    xmlns:context="http://www.springframework.org/schema/context"
    http://www.springframework.org/schema/context
    http://www.springfram            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-08 14:30:43
                            
                                187阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            基于Java的Spring注解配置基于 Java 的配置,允许你在少量的 Java 注解的帮助下,进行你的大部分Spring 配置而非通过 XML 文件。以@Configuration 注解为例,它用来标记类可以当做一个 bean 的定义,被 Spring IOC 容器使用。另一个例子是@Bean 注解,它表示此方法将要返回一个对象,作为一个bean 注册进 Spring 应用上下文。怎样开启注解            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-26 21:00:03
                            
                                181阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            目录1.现象2.分析2.1 问题分析2.2 原因分析3.解决3.1修改重写方法 1.现象在zuul网关springboot版本由1.5.10升级到2.1.1版本后,网关调用某服务下的所有接口,均出现熔断超时现象,报GATEWAY_TIMEOUT。2.分析2.1 问题分析1.从代码底层调用RibbonRoutingFilter的buildCommandContext方法构建请求上下文RibbonC            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-07 10:15:51
                            
                                110阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            场景公司有一个业务需要控制db0和db1的两个数据源的表的事务,每次都要自己多个开启,比较麻烦,因为公司是自定义框架所以模拟springjdbc的DataSourceTransactionManager多数据源控制 和@Transactional注解模拟写了一个多数据源管理事务的注解@LdTransactional解决方案查看DataSourceTransactionManager源码得知,实际是            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-30 10:34:44
                            
                                22阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            注解呢,是java本身自带的一个东西,它基于java的接口进行实现,是一种特殊的接口类型,通常对于注解来说,三种情况,一个是在编译前就会被丢弃的,一个是编译后留在class中的,另一种是会一直存在,运行的时候注解也会被保留,而框架的注解一般都是第三种。Class对象,Method对象,Parameter对象,Constructor对象等java反射对象通常都具有getAnnotation方法可以直            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-05 22:48:04
                            
                                213阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Spring 的注解一、XML 配置:<bean id="accountService" class="com.didi.service.impl.AccountServiceImpl"
    scope=""  init-method="" destroy-method="">
    <property name=""  value="" | ref=""></            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-15 11:37:34
                            
                                52阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            新添加一个jar包<groupId>org.springframework</groupId>
  <artifactId>spring-aop</artifactId>
	<version>${spring.version}</version> 一、注解对象在xml文件中   添加              
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-05 15:14:30
                            
                                48阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            用java config来代替XML,当时还遗留下一些问题:
<tx:annotation-driven />声明性事务等配置无法用简单代码来实现
web.xml无法去掉
随着servlet 3.0规范以及spring3.1.M2的发布,现在以上的问题也解决了。
先来说说web.xml,有两种方法来替代
(一)annotation
Java代码  @WebServlet(u            
                
         
            
            
            
             spring两大特性:        1.  控制反转(IoC)(依赖注入)       控制反转,简单点说,就是创建对象的控制权,被反转到了Spring框架上。通常,我们实例化一个对象时,都是使用类的构造方法来new一个对象,这个过程是由我们自己来控制的,而控制反转就把new对象的工交给了Spring容器            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-15 11:10:18
                            
                                0阅读