import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
import java.util.Optional;
@Repository
public interface FormRepository extends MongoRepository<Form, Integer> {
Optional<Form> findById(Integer formId);
}
这是我创建的mongo存储库。我访问它的方式如下:
@Service
public class FormServiceImpl implements FormService {
@Autowired
FormRepository formRepository;
@Override
public List<Question> getQuestions(Integer formId, ){
List<Question> questionList = new ArrayList<>();
..........
......................
........ initialise questionlist .............
......................
formRepository.save(new Form(questionList, "firstForm"));
return questionList;
}
}
我得到的错误-
***************************
APPLICATION FAILED TO START
***************************
Description:
Field formRepository in *.service.impl.FormServiceImpl required a bean of type '*.service.FormRepository' 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 '*.service.FormRepository' in your configuration.
Process finished with exit code 1
我的想法是:@Repository应该足以将FormRepository注册为bean。然而,事实并非如此。我无法将FormRepository接口注册为bean。上面的两个文件位于同一个包中。我已经将前缀路径替换为*-但请放心*在任何地方都有相同的含义。如果有任何额外的日志,请告诉我。
编辑:
我在我的主应用程序类中添加了@EnableMongorPositories。这就导致了这个错误-
2022-04-24 19:20:29.085 ERROR 2941 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Field formRepository in *.service.impl.FormServiceImpl required a bean named 'mongoTemplate' 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 named 'mongoTemplate' in your configuration.
Process finished with exit code 1
我认为MongoTemplate和MongoRepository是两个截然不同的东西。为什么我的mongo回购协议需要依赖MongoTemplate?
由于您使用的是mongo,因此需要添加额外的注释。
@SpringBootApplication
@EnableMongoRepositories(basePackageClasses = FormRepository .class)
public class MainClass {}
还要确保文件夹结构正确。
对于另一个问题,您应该在“POM”中添加依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
这一切都是关于mongo配置的。希望这有帮助。
我试图创建像@repository这样的系统。
我正在为spring数据存储库编写junit测试。但我不能自动连接存储库界面。如果我运行main方法,则程序正在运行,spring可以检测所有存储库、服务和实体,但如果我运行测试,则会出现以下错误: UnsatisfiedDependencyException:创建名为“repository”的bean时出错。BookRepositoryTest:通过字段“bookRepository”表示的未满
我尝试了很多事情 be.fgov.minfin.virtualprinter.model.StatusMap中的字段statusDescriptionDao需要一个类型为
我对JAVA web应用程序非常陌生,所以请记住这一点。我承担了一个非常大的项目,令人望而生畏。我终于修复了Maven依赖,现在在Tomcat上运行时遇到了第一个错误。 包含eu.digient.billfold.goshgame.game.level.ItemConfigFactoryImpl模块的Spring配置:
即使我的接口MonRepo(扩展JpaRepository)没有注释任何注释,告诉spring为这个类创建一个bean(例如。服务、控制器、组件等)。如何创建此类的 Bean。我确信创建了一个 bean,因为我在另一个类中自动连接了 monRepo,并且它工作得很好。 MonRepo公司 其中 monRepo 自动连线的类 除了我的类,我没有在任何地方使用过enableJpaRepository注