![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 89
只会摸鱼的coder
这个作者很懒,什么都没留下…
展开
-
spring自动注入与手动注入得区别
一、手动注入了解spring得同学都知道,在早期得版本spring是通过xml方式配置得,我们通常往bean中注入一个属性要么提供<property/>标签通过set方法完成注入要么提供<constructor-arg/>标签通过构造方法注入,这种显示得指定我们需要注入得属性叫做手动注入二、自动注入我们只需设置bean得注入方式并提供对应得set方法或者构造方法,spring就会自己分析方法完成注入,这就是我们常说的自动注入,但要注意得是我们经常使用得@Autowired原创 2022-05-30 11:39:36 · 1376 阅读 · 0 评论 -
@Transaction源码解读
@Transaction注解相信读者们肯定都用过,spring通过这种注解式声明事务,使我们开发者无需关注与数据库的事务编写,更多的关注到业务逻辑的代码编写上,使编码更加简单,但是@Transaction是如何工作的,以及面试中常问到的事务的传播行为是怎么一回事,我们还是有必要了解一下,本文将带你从源码层面上理解这这些东西,如有错误欢迎各位指正并讨论。当我们需要使用@Transaction注解声明事务时,必须先要使用@EnableTransactionManagement开启事务注解的支持,现在大多.原创 2022-05-10 18:15:59 · 1021 阅读 · 1 评论 -
spring如何解决循环依赖
本文将从spring如何解决循环依赖,以及那些情况下的循环依赖无法解决来分析,由于笔者水平有限,若有错误的地方望各位纠正并讨论。一、循环引用示列众所周知再spring中单列bean是支持循环依赖的,下面看代码:A.class代码:@Componentpublic class A { @Autowired private B b; public A(){ System.out.println("init A"); } }A中注入了一个B;B.class代码.原创 2022-04-28 14:43:59 · 15550 阅读 · 4 评论 -
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)也会导致死锁吗?
线上的服务,突然就卡死了,整个服务不可用了,必须要重启才能解决,但重启过后,过一段时间就又出现了,后来通过jstack命令排查到是获取数据库连接对象时,tomcat的线程阻塞在那里导致线程被耗尽(Connection newCon = obtainDataSource().getConnection();),最终造成服务不可用。但究竟是什么原因造成获取连接一直阻塞呢?后来通过压测发现只要并发数超过了连接池的最大连接数,这个问题就必现,下面的代码是模拟生产的代码写的demo操作表A...原创 2022-04-27 10:24:48 · 3148 阅读 · 0 评论 -
源码层面理解@Component和@Configuration
相信看见这篇文章的小伙伴都使用过Spring的@Component和@Configuration注解。这里就不详细讲解它俩的使用方法了,下面我们先看一下示列:A.class代码public class A { public A(){ System.out.println("init A"); }}B.class代码public class B { public B(){ System.out.println("init B"); }}使用@Configuratio原创 2022-04-25 17:23:12 · 388 阅读 · 0 评论