Spring mvc @在一个SpringMVC控制器中,当其他控制器工作时,自动连线字段为空
我有一个非常简单和经典的页面,其中有一个Spring MVC控制器和一个jsp(jsp在这里不相关): 调试时,我看到userRepository确实为null userRepository应该由Spring注入,在我的所有其他控制器中,情况都很好:Sptring正确地注入了相同的bean(userRepository) 为什么在这个由Spring实例化和调用的特定控制器(与其他所有控制器在同一个包中)中,userRepository为null? 我完全不明白。欢迎提出任何建议 谢谢! 埃米尔。一些想法:Spring mvc @在一个SpringMVC控制器中,当其他控制器工作时,自动连线字段为空,spring-mvc,Spring Mvc,我有一个非常简单和经典的页面,其中有一个Spring MVC控制器和一个jsp(jsp在这里不相关): 调试时,我看到userRepository确实为null userRepository应该由Spring注入,在我的所有其他控制器中,情况都很好:Sptring正确地注入了相同的bean(userRepository) 为什么在这个由Spring实例化和调用的特定控制器(与其他所有控制器在同一个包中)中,userRepository为null? 我完全不明白。欢迎提出任何建议 谢谢! 埃米尔。
- 打开Spring日志记录到信息级别,您应该会在应用程序启动期间看到一些日志记录语句,这些语句告诉您哪些控制器映射到了哪些URL。查看是否列出了此控制器。如果不是,spring就不会将其识别为控制器
- 您是否在未被xml中的
标记扫描的命名空间中声明了此控制器 - 正如@coder提到的,确保bean没有在XML上下文中声明
原因是我的方法是私有的。如果我将displayList()转换为一个公共方法,一切都正常。您是否在spring cpnfig中将playlistController声明为xml bean?此外,如果您可以共享spring配置,请说明如何配置上下文?
@Controller
public class PlayListListController extends BaseController<PlayList> {
@Autowired UserRepository userRepository;
@RequestMapping("/playlist/{userName}")
private ModelAndView displayList(@PathVariable("userName") String userName) {
User user = userRepository.getUserByUserName(userName);
....
}
}
User user = userRepository.getUserByUserName(userName);