Spring AOP 中,切点有多少种定义方式?

在 Spring AOP 中,我们最常用的切点定义方式主要是两种:

  1. 使用 execution 进行无侵入拦截。
  2. 使用注解进行拦截。

Spring 中一个少见的引介增强 IntroductionAdvisor

我们平时做 AOP 开发的时候,基本上都是增强某一个方法,在某一个方法执行之前或者执行之后做一些事情,这种叫做 PointcutAdvisor,实际上,Spring 中的 Advisor 大致可以分为两种类型,除了 PointcutAdvisor 之外,还有另外一种 Advisor 叫做 IntroductionAdvisor,因为最近想和小伙伴们聊一聊 Spring AOP 的源码,看源码有一个前提就是得先掌握 Spring 的各种用法,这样看源码的时候往往就有一种醍醐灌顶的感觉,否则看源码的时候就容易懵!

玩一玩编程式 AOP

[TOC]

平时我们项目中涉及到 AOP,基本上就是声明式配置一下就行了,无论是基于 XML 的配置还是基于 Java 代码的配置,都是简单配置即可使用。声明式配置有一个好处就是对源代码的侵入小甚至是零侵入。不过今天松哥要和小伙伴们聊一聊编程式的 AOP,为什么要聊这个话题呢?因为在 Spring 源码中,底层就是通过这种方式创建代理对象的,所以如果自己会通过编程式的方式进行 AOP 开发,那么在看 Spring 中相关源码的时候,就会很好理解了。

@Lazy 注解为啥就能破解死循环?

以下内容基于 Spring6.0.4。

上篇文章松哥和大家聊了在 Spring 中并非所有的循环依赖都可以被解决,有一些循环依赖默认情况下 Spring 也是完全无法解决的。不熟悉的小伙伴可以先看看上篇文章

Spring 能解决所有循环依赖吗?

以下内容基于 Spring6.0.4。

看了上篇文章的小伙伴,对于 Spring 解决循环依赖的思路应该有一个大致了解了,今天我们再来看一看,按照上篇文章介绍的思路,有哪些循环依赖 Spring 处理不了。

如何通过三级缓存解决 Spring 循环依赖

以下内容基于 Spring6.0.4。

这个其实是一个特别高频的面试题,松哥也一直很想和大家仔细来聊一聊这个话题,网上关于这块的文章很多,但是我一直觉得要把这个问题讲清楚还有点难度,今天我来试一试,看能不能和小伙伴们把这个问题梳理清楚。

@Autowired 到底是怎么把变量注入进来的?

[TOC]

以下内容基于 Spring6.0.4。

用 Spring 管理 Controller,你觉得可行吗?

以下内容基于 Spring6.0.4。

上篇文章和小伙伴们聊了 Spring 容器中的父子容器问题,也和小伙伴们梳理了 Spring 容器和 SpringMVC 容器之间的关系,其中,Spring 容器是父容器,SpringMVC 是子容器,子容器可以访问父容器中的 Bean,但是父容器无法访问子容器中的 Bean。

Spring 中的父子容器是咋回事?

[TOC]

以下内容基于 Spring6.0.4。

相信有小伙伴也听说过,在 SSM 项目中,Spring 容器是父容器,SpringMVC 是子容器,子容器可以访问父容器的 Bean,但是父容器不能访问子容器的 Bean。

Spring5 中更优雅的第三方 Bean 注入

以下内容基于 Spring6.0.4。

小伙伴们知道,当我们使用 Spring 容器的时候,如果遇到一些特殊的 Bean,一般来说可以通过如下三种方式进行配置:

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×