Mongo配置文件:
spring:
data:
mongodb:
one:
uri: mongodb://192.168.3.180:27017/data
two:
uri: mongodb://192.168.3.180:27017/data2
Mongo one配置类
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
@Configuration
@EnableMongoRepositories(mongoTemplateRef = "oneMongo")
public class MongoOneConfig implements EnvironmentAware {
private Environment environment;
@Override
public void setEnvironment(final Environment environment) {
this.environment = environment;
}
@Bean(name = "oneMongo")
@Primary
public MongoTemplate mongoTemplate() {
return new MongoTemplate(mongoDatabaseFactory());
}
@Bean(name = "oneMongoFactory")
@Primary
public MongoDatabaseFactory mongoDatabaseFactory() {
MongoClient client = MongoClients.create(environment.getProperty("spring.data.mongodb.one.uri"));
return new SimpleMongoClientDatabaseFactory(client, "data");
}
}
Mongo two配置类
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import org.springframework.context.EnvironmentAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.data.mongodb.MongoDatabaseFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory;
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
@Configuration
@EnableMongoRepositories(mongoTemplateRef = "twoMongo")
public class MongoTwoConfig implements EnvironmentAware {
private Environment environment;
@Override
public void setEnvironment(final Environment environment) {
this.environment = environment;
}
@Bean(name = "twoMongo")
public MongoTemplate mongoTemplate() {
return new MongoTemplate(mongoDatabaseFactory());
}
@Bean(name = "twoMongoFactory")
public MongoDatabaseFactory mongoDatabaseFactory() {
MongoClient client = MongoClients.create(environment.getProperty("spring.data.mongodb.two.uri"));
return new SimpleMongoClientDatabaseFactory(client, "data2");
}
}
调用Mongo
@Autowired
@Qualifier("oneMongo")
private MongoTemplate oneMongoTemplate;
@Autowired
@Qualifier("twoMongo")
private MongoTemplate twoMongoTemplate;