![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
Francis Einscan
写博客既为自我提升、日后复习,也希望能帮助到有需要之人,所写不一定是精华且无误,但大部分是经过实际验证的结果,且能引用官方原文的会尽量提供链接。同时,如有错误的地方希望也能得到指正,谢谢。
展开
-
一张图搞懂Spring启动流程和Bean的生命周期
这篇文章描述了Spring整体的启动流程,并通过测试用例,演示了一些Spring的扩展点在Bean的生命周期中的使用。测试代码@Componentpublic class A { private boolean running; @Override public void start() { System.out.println("SmartLifecycle start..."); this.running = true; }原创 2021-04-23 00:31:38 · 904 阅读 · 0 评论 -
阅读 Spring官方文档和调试源码技巧
本人在B站上传了两个视频,分享自己在学习 Spring 过程中的经验:Francis 带你阅读 Spring 官方文档Francis 教你使用 IDEA 调试 Spring 源码原创 2020-07-11 14:46:12 · 284 阅读 · 0 评论 -
从源码角度浅析 Spring @Transactional 的代理过程
本文基于 Spring Boot 项目测试,依赖的 Spring 源码版本为5.2.1,主要测试代码如下:@EnableTransactionManagement//@EnableAspectJAutoProxy(exposeProxy = true)@SpringBootApplicationpublic class DemoApplication { public stati...原创 2020-04-29 01:04:13 · 618 阅读 · 1 评论 -
浅析Mybatis利用Spring扩展点之ImportBeanDefinitionRegistrar
看懂这篇文章可能需要有一定的spring源码基础,在分析原理之前,先简单讲一下应用。。。使用spring boot结合mybatis开发时,会在pom.xml中引入下面依赖:<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-bo...原创 2020-04-18 18:24:11 · 962 阅读 · 0 评论 -
IDEA + Tomcat 搭建 Spring MVC(零xml配置)
在讲spring mvc之前,先讲一下idea创建web项目及启动。步骤如下:创建maven 项目,点击Next输入如下信息,点击Next输入如下信息,点击Next在 src/main目录下新建webapp目录:修改pom.xml,配置成war包,并按需求引入相关依赖:配置tomcat及相关参数:主要代码如下:package com.francis.config;i...原创 2020-04-06 14:39:46 · 1001 阅读 · 0 评论 -
Spring @Autowired 自动装配 ?
以前在网上看过一些关于spring 自动装配的文章,有人说@Autowired就是自动装配,其实这是不正确的,今天我将会以官网文档和源码来说明这个问题。讲自动装配之前我想先看一下官方文档对自动装配的描述,可以看到,自动装配有四种模式:从上图可以看到,默认Mode为no,代表没有自动装配,然后我们再看看AutowireCapableBeanFactory中定义的几个常量,其实就是跟上图中四种模...原创 2020-04-02 22:06:41 · 437 阅读 · 0 评论 -
AspectJ 解决Spring @Transactional 坑点 步骤记录
上一篇文章提到Spring @Transactional 坑点中的前两个坑点都是用比较常规的方法解决的,spring官方提到过aspectj这种解决方案,随后我花时间研究了一下确实解决了,大概步骤是这样的:1、pom.xml中加maven依赖:<dependency> <groupId>org.aspectj</groupId> <arti...原创 2020-03-26 23:07:40 · 1434 阅读 · 0 评论 -
Spring 事务 @Transactional 常见坑点
聊起Spring aop很多人肯定都觉得自己使用的很熟练,比如日志,事物等等,当我问起事物怎么实现的时候,他们都会说加个注解@Transactional就可以了,而我再问你有没想过这中间有坑的时候,都说不知道,甚至工作五六年的人都不知道。而最近,看见公司项目中就有人埋了坑而不自知,所以我决定记录一下。之前已经写过spring 事务作用于异步方法或线程池时有坑,今天说说其他的坑。ServiceI...原创 2020-03-25 22:41:42 · 809 阅读 · 1 评论 -
@Configuration标注的类中使用@Autowired注入失败
关于在一个类上加了@Configuration,然后使用@Autowired注入一个属性时,有可能会出现失败的情况,目前本人在开发中并没有遇到过,只是听人提起过,然后也查过资料,并没有很好的解释。然后自己模拟了一下,如图:所以,此次并没有模拟出想要的结果。自己也翻阅了spring官方文档,有提及到这一点:但是spring并没有用代码举例说明什么情况下会出现注入失败的情况,只是讲了怎样可以注...原创 2020-03-24 00:09:50 · 4052 阅读 · 1 评论 -
从源码角度分析spring是如何解决循环依赖的
本文基于spring 5.2.x调试。聊起spring循环依赖,首先我们需要了解什么叫循环依赖,比如我们定义了两个Bean:A和B,A -> B, B -> A,这就是循环依赖。然后我们要知道spring默认是支持循环依赖的,这是因为spring内部定义了一个变量allowCircularReferences且默认为true,但是spring支持循环依赖也是有前提的,下面我将举例说明什...原创 2020-03-19 00:30:48 · 251 阅读 · 1 评论 -
从spring源码角度分析@Configuration和@Component区别
很多人都用过@Configuration和@Component,但并不一定了解他们的区别,或者所了解到的区别仅是在理论层面,并不知道真实原因,最近本人在学习spring 5.2源码,特记录并分享一下。首先,我们可以看到@Configuration的代码是这样的:从图中可以看出,@Configuration这个类是加上了@Component注解的,所以姑且认为@Component有的功能他都有...原创 2020-03-11 02:12:37 · 580 阅读 · 1 评论