idea使用备忘,出现Could not autowire. No beans of 'BoyRepository' type found

idea使用备忘,出现Could not autowire. No beans of 'BoyRepository' type found

    • 方法一:加@Repository
    • 方法二:降低idea的Autowired检测级别
    • 方法三:在Autowired后加(required = false)
    • PS

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

方法一:加@Repository

转自stackoverflow
https://stackoverflow.com/questions/16241946/intellij-idea-could-not-autowire-no-beans-of-applicationrepository-type-fou
I followed the same tutorial and ran into the same code inspection warning (even if the application was working fine, the IDE was complaining). To make fix it, I added @Repository to my JpaRepository:

package com.example.demo;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

@Repository  //在定义Repository接口的位置加上这个注解,声明为Spring的Bean即可
public interface BoyRepository extends JpaRepository<Boy, Integer> {
}

方法二:降低idea的Autowired检测级别

在Editor >> Inspections >> Spring >> Spring Core >> Code >>Autowiring for Bean Class 把Serverity级别由Error改编为Warning >> Apply >> OK 查看效果 无异常提示 搞定

idea使用备忘,出现Could not autowire. No beans of 'BoyRepository' type found_第1张图片

方法三:在Autowired后加(required = false)

在注解上加上:@Autowired(required = false)

package com.example.demo;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class BoyController {

    @Autowired(required = false)
    private BoyRepository boyRepository;

    @GetMapping(value = "/boy")
    public List<Boy> findAll() {
        return boyRepository.findAll();
    }

}

PS

还有一个原因,这个博主没有遇到,友情粘贴!
便是我们导入 @Service 包的时候导入包错误造成的。

spring auto scan 配置,在编辑情况下,无法找不到对应的bean,于是提示找不到对应 bean 的错误。常见于 mybatis 的 mapper,如下:



  
  

解决办法:

错误导包 import com.alibaba.dubbo.config.annotation.Service;
正确的包应该是下面这个:

import org.springframework.stereotype.Service;

你可能感兴趣的:(java)