Spring app保存文档以测试db而不是自定义db

时间:2018-03-05 00:25:47

标签: java spring mongodb yaml

我有一个Spring restful web服务,我正在尝试保存到名为little-data的数据库,但我的应用程序一直保存到测试数据库。

下面是我的application.yml文件:

spring:
  data:
    mongodb:
    port: 27017
    uri: mongodb://127.0.0.1/little-data
    repositories:
      enabled: true
    authentication-database: admin


server:
  port: 8090

我也尝试过我的应用程序yaml文件:

spring:
  data:
    mongodb:
    host: 127.0.0.1
    port: 27017
    database: little-data
    repositories:
      enabled: true
    authentication-database: admin


server:
  port: 8090

这是我的帖子模型:

import org.springframework.data.mongodb.core.index.Indexed;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Field;
import lombok.*;

@Data
@NoArgsConstructor
@Document(collection = "posts")

public class Post {

    @Id
    @Field("id")
    private int id;

    @Field("gameName")
    private String gameName;

    @Indexed(unique=true)
    @Field("gameGenre")
    private String gameGenre;

    public Post(int id, String game, String genre) {
        this.id = id;
        this.gameName = game;
        this.gameGenre = genre;
    }
}

所有请求都可以正常工作,但它们会保存到错误的数据库中。任何帮助,将不胜感激。谢谢

2 个答案:

答案 0 :(得分:7)

在您的YAML配置中,请注意hostport孩子 mongodb而不是与您相同的级别(如果是&# 39;这不是一个错字),像这样:

spring:
    data:
        mongodb:
            host: 127.0.0.1
            port: 27017
            database: little-data

答案 1 :(得分:1)

您使用个人资料吗?一个可能的application.yaml看起来像这样:

spring:
    profiles:
        active: production
---
spring:
    profiles: development
    data:
        mongodb:
            host: 127.0.0.1
            port: 27017
            database: test-db
---
spring:
    profiles: production
    data:
        mongodb:
            host: 127.0.0.1
            port: 27017
            database: little-data

正如Laabidi Raissi所说,要小心缩进。