You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot从3.2.x升级到3.3.x触发AspectJ NoSuchMethodException问题

问题分析与解决思路

核心问题定位

升级Spring Boot到3.3.5后启动失败,抛出NoSuchMethodException: ...aspectOf(),本质是Spring尝试以原生AspectJ方式初始化切面类,但该类未被AspectJ织入处理——aspectOf()是AspectJ织入时自动生成的方法,用于获取单例切面实例。

尽管两个版本的aspectj.version一致,但Spring Boot 3.3.x(对应Spring Framework 6.1.x)对AOP组件的初始化逻辑做了调整,导致原有手动注册切面的方式不再兼容。

具体解决步骤

1. 修正切面的注册方式

你的项目中通过@Bean手动创建LogAspect实例,这会触发Spring尝试用原生AspectJ逻辑初始化切面,但如果没有配置编译时织入(CTW),就会缺少生成的aspectOf()方法。

修改方案:

  • 移除AspectConfig中的@Bean方法,改为让LogAspect通过组件扫描自动注册:
    // AspectConfig.java
    @Configuration
    @EnableAspectJAutoProxy // 启用Spring AOP动态代理
    public class AspectConfig {
        // 移除logAspect()的@Bean方法
    }
    
  • 给LogAspect添加@Component注解,确保Spring能扫描到该类:
    // LogAspect.java
    @Aspect
    @Component
    public class LogAspect {
        // 原切面逻辑保留
    }
    

2. 检查AspectJ织入配置(如果使用编译时织入)

如果项目依赖AspectJ编译时织入(而非Spring AOP动态代理),需确保aspectj-maven-plugin配置正确,且绑定到编译阶段:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>aspectj-maven-plugin</artifactId>
    <version>1.14.0</version> <!-- 与AspectJ 1.9.22.1兼容的版本 -->
    <executions>
        <execution>
            <goals>
                <goal>compile</goal>
                <goal>test-compile</goal>
            </goals>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
            <version>${aspectj.version}</version>
        </dependency>
    </dependencies>
</plugin>

3. 排查依赖冲突

执行mvn dependency:tree检查是否有第三方依赖引入了不同版本的AspectJ组件,确保所有AspectJ相关依赖(aspectjrt、aspectjweaver等)都使用统一的1.9.22.1版本。

4. 修复测试类问题

测试失败通常是因为AOP配置未正确加载,确保测试类添加@SpringBootTest,且能扫描到AspectConfig和LogAspect所在的包。如果需要,可在测试类上显式添加@EnableAspectJAutoProxy。

关键原理补充

Spring AOP默认使用动态代理(JDK或CGLIB),不需要AspectJ织入;只有当你手动注册切面实例且Spring检测到@Aspect注解时,才会尝试切换到原生AspectJ逻辑,此时必须确保切面类已被织入处理。Spring Boot 3.3.x强化了这种逻辑的校验,导致原有兼容写法失效。

内容的提问来源于stack exchange,提问作者Nitin Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 04:08:22