当@Controller中的方法是final方法时@Autowired变量为null

Cha*_*ang 6 spring spring-mvc spring-boot

在我的控制器中,我有一个如下所示的方法:

@Autowired
StatisticsService statisticsService;

@GetMapping("statistic")
public final WebResponse<List<TierCpStatisticsDataDTO>> getStatisticsInfo(String var) {statisticsService.methodA();  ... ...)
Run Code Online (Sandbox Code Playgroud)

对于“最终”,statisticsService 为 null。当我删除“final”时,statisticsService 会获得正确的实例。

有人能解释为什么会发生这种情况吗?

有线的是,当 Final 存在时,控制器将被代理,如下所示: 在此输入图像描述

但是当我删除final后,控制器就不再被代理了。

Cha*_*ang -1

问题解决了。我发现@Validated使用了AOP。当我删除@Validated后。最终方法有效。