JavaSpringMongoDB存储库接口

JavaSpringMongoDB存储库接口,java,spring,mongodb,hibernate,spring-data-jpa,Java,Spring,Mongodb,Hibernate,Spring Data Jpa,所以我有一个AppUser类: @数据 @建筑商 @文档(collection=“app\u用户”) @组成部分 @AllArgsConstructor @诺尔格构装师 @导入(AppConfig.class) 公共类AppUser{ @身份证 @NotBlank(message=ErrorConstants.ANDROID\u USER\u ACCOUNT\u MANAGER\u ID\u为空) 私有字符串androidUserAccountManagerId; @NotBlank(messa

所以我有一个AppUser类:

@数据
@建筑商
@文档(collection=“app\u用户”)
@组成部分
@AllArgsConstructor
@诺尔格构装师
@导入(AppConfig.class)
公共类AppUser{
@身份证
@NotBlank(message=ErrorConstants.ANDROID\u USER\u ACCOUNT\u MANAGER\u ID\u为空)
私有字符串androidUserAccountManagerId;
@NotBlank(message=ErrorConstants.NULL\u NAME)
私有字符串名称;
私人朋友最好的朋友;
@Setter(AccessLevel.NONE)
私人友人名单;
私有布尔覆盖;
公共可选getFriend(字符串friendName){
返回friendList.getFriend(friendName);
}
public void calculateBestFriend(){
如果(!手动超越){
bestFriend=friendList.calculateAndReturnBestFriend();
}
}
}
我创建了一个
AppUserRepository
接口,扩展了
MongoRepository

@存储库
公共接口AppUserRepository扩展了MongoRepository{}
我有一个与界面交互的
WebController
类。此类中的
AppUserRepository
字段是
@Autowired
。这一切似乎都是可行的,但我有一些关于如何以及如何继续编写集成测试的问题:

  • 如何配置已创建的
    AppUserRepository
    ?我可以在特定端口上运行它吗
  • 为什么
    Autowired
    起作用了,因为我没有在
    AppConfig
    中创建这个
    AppUserRepository
    Bean,就像我的应用程序中有其他
    Autowired
    的Bean一样
  • 如果我要创建一个Bean,难道我不需要实现这个类并返回实例化吗?我开始这样做,但我必须实现所有的
    MongoRepository
    类方法,我不确定这些方法是否正确
  • 如何使用
    AppUserRepository
    编写集成测试?我需要一个
    AppUserRepository
    ,以便我的请求与之交互,但我不希望在服务启动并运行时,这个数据库与实时应用程序数据库相同。我能否
    @Autowire
    将数据库导入集成测试类,然后在集成测试运行后关闭数据库?如果这就是我前进的方向,我想我需要做上面的第3点
  • 提前感谢您的帮助,我已经阅读了一些文档,但我认为我缺少了一些关键知识,这意味着这一切都是非常令人困惑的


    谢谢

    这实际上是一个很重要的故事。这个主题叫做SpringDataJPA,Hibernate。你可能想做一个研究,看一些教程等等

    简单地说,MongoRepository只是提供了许多可以使用的方法。您还可以定义自己的方法、添加查询等

    你的出发点:

    当然,您可以通过
    application.properties
    文件设置端口号(以及一些其他属性)。这是最常见的属性列表,您可以在其中找到mongodb的属性:

    现在谈谈比恩。实际上,您基本上创建了一个带有
    @Repository
    注释的存储库。所以Spring上下文在应用程序开始时加载它。你可以自动连线