遇到的主要的问题的原因是:注入之后并没有检测到
例如:
解决方法:
根据英文的提示是在配置中找不到一个指定自动注入类型的bean, SpringBoot项目的Bean装配默认规则是根据Application类所在的包位置从上往下扫描! Application类是指SpringBoot项目入口类。
这个类的位置很关键: 如果Application类所在的包为:com.openplat,则只会扫描com.openplat包及其所有子包,如果mapper、service所在包不在com.openplat及其子包下,则不会被扫描。
即, 把Application类放到mapper、service所在包的上级,com.openplat.OpenPlatApplication
知道这一点非常关键,不知道Spring文档里有没有给出说明,如果不知道还真是无从解决。
两种解决办法:
1 .将接口与对应的实现类放在与application启动类的同一个目录或者他的子目录下,这样注解可以被扫描到,这是最省事的办法
2 .在指定的application类上加上这么一行注解,手动指定application类要扫描哪些包下的注解(图3)
3.查看inda给你打包的那个文件里面目录结构是否正确
图3
@ComponentScan(basePackages = “com.openplat.system.mapper.*”)