我得到了这个错误: "

***************************
APPLICATION FAILED TO START
***************************
Description:

Field questionDao in com.surbhi.quizapp.service.QuestionService required a bean of type 'com.surbhi.quizapp.dao.QuestionDao' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)

Action:

Consider defining a bean of type 'com.surbhi.quizapp.dao.QuestionDao' in your configuration.

" 我有以下文件 struct 和文件.

File structure:. https://i.stack.imgur.com/8jSrf.png.

QuestionService.java

@Service
public class QuestionService {

  QuestionDao questionDao;

  public QuestionService(QuestionDao questionDao) {
    super();
    this.questionDao = questionDao;
  }

  public ResponseEntity<List<Question>> getAllQuestions() {
    try {
      return new ResponseEntity<>(questionDao.findAll(), HttpStatus.OK);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return new ResponseEntity<>(new ArrayList<>(), HttpStatus.BAD_REQUEST);
  }

  public ResponseEntity<List<Question>> getQuestionsByCategory(
    String category
  ) {
    try {
      return new ResponseEntity<>(
        questionDao.findByCategory(category),
        HttpStatus.OK
      );
    } catch (Exception e) {
      e.printStackTrace();
    }
    return new ResponseEntity<>(new ArrayList<>(), HttpStatus.BAD_REQUEST);
  }

  public ResponseEntity<String> addQuestion(Question question) {
    questionDao.save(question);
    return new ResponseEntity<>("success", HttpStatus.CREATED);
  }
}

QuestionDao.java

@Repository
public interface QuestionDao extends JpaRepository<Question, Integer> {
  List<Question> findByCategory(String category);

  @Query(
    value = "SELECT * FROM question q Where q.category=:category ORDER BY RANDOM() LIMIT :numQ",
    nativeQuery = true
  )
  List<Question> findRandomQuestionsByCategory(String category, int numQ);
}

我也试过删除@ Autowire并创建构造函数,但也没有工作,并给出了这个错误

***************************
APPLICATION FAILED TO START
***************************
Description:

Parameter 0 of constructor in com.surbhi.quizapp.service.QuestionService required a bean of type 'com.surbhi.quizapp.dao.QuestionDao' that could not be found.

Action:
Consider defining a bean of type 'com.surbhi.quizapp.dao.QuestionDao' in your configuration.

我应该怎么做,还补充道

@SpringBootApplication(scanBasePackages={ "com.surbhi.quizapp.controller", "com.surbhi.quizapp.dao","com.surbhi.quizapp.model","com.surbhi.quizapp.service"})

在Main中,但这也不起作用.

已使用@ EntrowentScan,不起作用

Main class file:

@SpringBootApplication

@ComponentScan("com.surbhi.quizapp.dao")

public class QuizappApplication {

    public static void main(String[] args) {
        SpringApplication.run(QuizappApplication.class, args);
    }

}

推荐答案

看看你上传的包裹照片,好像有两个QuizappApplication个班.(com.surbhi.quizappcom.surbhi.quizapp.service)

如果我删除com.surbhi.quizapp.service包中存在的QuizappApplication类并将其写成如下所示,会不会出现同样的问题?

@SpringBootApplication
public class QuizappApplication {

    public static void main(String[] args) {
        SpringApplication.run(QuizappApplication.class, args);
    }

}

此外,@ Repository注释在Xinjao接口上不是必需的.

Java相关问答推荐

表格栏上的事件过滤器在PFA中不起作用

Android -如何修复Java.time.zone. ZoneRulesExcept:未知时区ID:Europe/Kyiv

当切换javaFX场景时,stage的大小正在Minimize

为什么我的ArrayList索引的索引总是返回-1?

无法在WebSocket onMessage中捕获错误

Java中实现的归并排序算法给出ArrayIndexOutOfBound异常

由于我在Main方法中关闭了 scanner ,但在该方法中创建了一个新的 scanner ,因此出现了错误

安装Java Jar应用程序的Install4j遇到ClassNotFoundException的运行时错误

Helidon 4和Http API

在JDK 1.8源代码中,为什么使用A-B 0来确定哪个更大,而不是A B?

Log4j与jdk21兼容吗?

使SLF4J在Android中登录到Logcat,在测试中登录到控制台(Gradle依赖问题)

如果按钮符合某些期望,如何修改它的文本?

扩展视图高度,并将其拖动到较低的视图上,而不是将其向下推?

Spring动态反序列化JSON可以是列表,也可以只是一个对象

如何调整JButton的大小以适应图标?

如何在Spring Boot中为不同的部署环境管理多个.properties文件?

基于距离的APACHE POI公式判断

";home/runner/work/中没有文件...匹配到[**/pom.xml];Maven项目的构建过程中出现错误

如何组合Mono和Flux