Конфигурация Spring data mongodb - PullRequest
0 голосов
/ 24 октября 2018

У меня есть приложение весенней загрузки, использующее spring-data-mongodb.Со следующей конфигурацией MongoDB в application.properties, mongoRepository считывает / записывает документы в правильную базу данных: product_db.Пока все правильно.

#MongoDB Config
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=product_db
spring.data.mongodb.username=demo
spring.data.mongodb.password=demo
spring.data.mongodb.database=product_db

Затем я ввел spring-cloud-config и переместил точно такую ​​же конфигурацию MongoDB в my-service.properties, чтобы клиент конфигурации мог получить их с сервера конфигурации.Странно то, что теперь mongoRepository читает / записывает документ из / в базу данных: test

Где spring-cloud-config-server определяет имя базы данных?Как настроить, чтобы попросить mongoRepository использовать правильную базу данных?

Фрагмент кода, следующий за сервером конфигурации

@SpringBootApplication
@EnableDiscoveryClient
@EnableConfigServer
public class ConfigServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigServiceApplication.class, args);
    }
}

application.properties для сервера конфигурации

server.port=2000
spring.application.name=config-server
eureka.client.service-url.defaultZone=http://localhost:8260/eureka

spring.profiles.active=native
spring.cloud.config.server.native.search-locations=file:///${user.home}/Project/configuration

my-test.properties

server.port=2100
spring.application.name=service-sample
eureka.client.service-url.defaultZone=http://localhost:8260/eureka
logging.level.org.springframework=INFO

#MongoDB Config
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=product_db
spring.data.mongodb.username=demo
spring.data.mongodb.password=demo
spring.data.mongodb.database=product_db

Для my-service в качестве клиента конфигурации:

@EnableDiscoveryClient
@SpringBootApplication
@EnableMongoRepositories(basePackages = "com.mydemo.service.sample.repositories")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

bootstrap.properties для клиента конфигурации:

server.port=2100
spring.application.name=my-service

eureka.client.service-url.defaultZone=http://localhost:8260/eureka

spring.cloud.config.discovery.enabled=true
spring.cloud.config.discovery.service-id=config-server

Как упоминалось ранее, если я удалю bootstrap.properties и использую следующеефайл application.properties для my-service, все хорошо.

server.port=2100
spring.application.name=service-sample    
eureka.client.service-url.defaultZone=http://localhost:8260/eureka    
logging.level.org.springframework=INFO

#MongoDB Config
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=product_db
spring.data.mongodb.username=demo
spring.data.mongodb.password=demo
spring.data.mongodb.database=product_db
...