我得到了这个错误: "
***************************
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);
}
}