@Autowired 注入dao 为 null
Springboot + myBatis
ServiceImp 内 @Autowired dao 程序启动时异常:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field ***Dao in ***ServiceImpl required a bean of type '***Dao' that could not be found.
Action:
Consider defining a bean of type '***Dao' in your configuration.
出现问题之后,网上翻阅很多资料,最后被自己蠢哭:
1.启动类位置问题:
启动类位置与dao所在层级关系错误,应高于dao所在层级;
2.@Service标签:
并不是所有用到dao的ServiceImp都标注了@Service标签;
介于以上两种问题都不是引起我异常的原因,后来发现是
启动类SpringBootApplication没有添加@MapperScan标签:
******************************************************************************************
@SpringBootApplication
//@EnableScheduling //开启定时器
@MapperScan(value = "com.test.dao")
public class SpringBootApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootApplication.class, args);
}
}
**************************************************************************************************
通过使用@MapperScan可以指定要扫描路径,在启动类上添加@MapperScan注解,value为dao路径,解决;