Sping Boot注入接口失败

图片说明
项目结构应该是正确的。

@Repository
public interface UserDao {

    public User getById(int id);
}

Dao层的代码,使用接口。
@Service

@Service
public class UserService {

    @Autowired
    UserDao userDao;

    public User getById(int id) {
        return userDao.getById(id);
    }


}

service层代码。

controller层注入service。

启动spring boot后会提示dao层没有扫描到,如果@ComponentScan dao层的话,会提示service层注入失败,求解。

使用Spring Boot就是有几个方法
Template,hibernate,JPA
你应该使用的是后两种,使用后两种,你的@Respository对象,也就是DAO,应该实现JpaRepository或者CurdRepository,
如果不这样,应该注释@Query方法进行自定义查询,你试一下,都是这么搞的。
对了

 JpaRepository<你的特定对象,ID标识类型>

这么声明,试一下

有没有忘了设置连接属性到项目配置文件?
实体类有没设置到表名?

Spring Data可以创建@Repository各种风格的接口的实现. 但是 ,这个地方是重点
Spring Boot可以为你处理所有这些事情,只要这些@Repositories包含在你@EnableAutoConfiguration班级的同一个包(或一个子包)中。