概念介绍:视图控制器作用是将前台路径不经controller直接forward到view。
问题描述:springboot项目通过实现WebMvcConfigurer并重写addViewControllers方法添加视图控制器,但发现始终不生效,百度相关主题也未解决。
问题解决:在另一个工程中配置生效,对比两者区别,发现前者的path是直接一个字符串,不生效的工程使用的是@Value引入配置文件中的值。改成直接用字符串后配置生效。
原因分析:Configuration的构造函数调用后,在@Value生效前就调用了addViewControllers方法,导致path对应的变量为空字符串。
根据如下参考链接的说法:Spring的ApplicationContext在加载类的时候有一定的顺序,这三者的顺序大概如下:
构造方法->@Value->@Bean
参考链接:https://blog.csdn.net/majixiang1996/article/details/88391618