我有一个响应式 Spring Boot API/MongoDB,我想对其进行 dockerize,但是 Spring-boot 应用程序一直尝试连接到 localhost:21017 上的 mongoDB。这显然让我拒绝了连接。
我尝试的所有选项都像排除自动配置类,覆盖reactiveMongoTemplate,似乎没有任何效果。我很想听听一些建议
我的 docker-compose:
version: "3.7"
services:
api_service:
build: .
restart: always
hostname: spring
ports:
- 8080:8080
container_name: "review-service"
depends_on:
- mongo
mongo:
image: "mongo:latest"
hostname: mongo
restart: always
container_name: mongo_review
ports:
- 27017:27017
应用属性
spring.data.mongodb.host=mongo
spring.data.mongodb.database=test
spring.data.mongodb.port=27017
应用程序类
@SpringBootApplication(exclude={MongoReactiveAutoConfiguration.class, MongoReactiveDataAutoConfiguration.class})
@EnableReactiveMongoRepositories
public class ConferenceAppReviewReactiveApplication extends AbstractReactiveMongoConfiguration implements CommandLineRunner {
@Autowired
private ReviewService reviewService;
public static void main(String[] args) {
SpringApplication.run(ConferenceAppReviewReactiveApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
Review review = new Review();
review.setRev_referenceId("60d093a31ee645007b2df2cb");
reviewService.save(review);
}
@Bean
public MongoClient mongoClient() {
return MongoClients.create();
}
@Override
protected String getDatabaseName() {
return "test";
}
@Override
public MongoClient reactiveMongoClient() {
return MongoClients.create("mongodb://mongo:27017/test");
}
答案 0 :(得分:0)
找到解决方案:
显然@EnableReactiveMongoRepositories 就够了,剩下的交给 Spring 来