此问题花费我较多时间,在此做下记录。
问题排查步骤:
1、@Controller、@Service等注解是否有写
2、xml等是否配置自动扫描对应的bean
3、定时任务中bean的名称等是否写错(我就是错在这里了 坑啊)
这里主要说说第三点:
NoSuchBeanDefinitionException报错不外乎两个原因
1、bean没有创建注入
2、定时任务中写的bean名称与创建的bean名称不一致(我的问题所在)
我通过定位发现:
1、beanFactory创建的bean搜字母大写第二个字母小写的话,bean的首字母会自动变成小写的,而我的定时任务使用的bean名称还是首字母大写,通过首字母大写的bean去搜索,所以搜索不到
举例 :有一个UserController beanFatory创建的bean为userController,如果我们定时器通过UserController这个bean名称去搜索这个bean是永远搜索不到的,只能通过userController去搜索才能搜到
2、beanFactory创建的bean 第一第二两个字母都是大写的话,bean名称就不会改变
举例:TUserController bean名称还是TUserController,需要通过TUserController这个bean名称去搜索。