Commit a705c276 by 张永田

mongodb多数据源配置

parent 347ad7be
......@@ -4,14 +4,16 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.mongo.MongoDataAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication//排除自动配置
@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})//排除自动配置
@ComponentScan(basePackages = {"com.founder"})
@MapperScan(basePackages={"com.founder.peopleapi.mapper"})
@EnableDiscoveryClient
......
package com.founder.peopleapi.config;
import com.mongodb.MongoClientURI;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
public abstract class AbstractMongoConfig {
//连接MongoDB地址
private String uri;
/**
* 获取mongoDBTemplate对象
*/
public abstract MongoTemplate getMongoTemplate() throws Exception;
/**
* 创建mongoDb工厂
*/
public MongoDbFactory mongoDbFactory() throws Exception {
MongoClientURI mongoclienturi = new MongoClientURI(uri);
return new SimpleMongoDbFactory(mongoclienturi);
}
public String getUri() {
return uri;
}
public void setUri(String uri) {
this.uri = uri;
}
}
package com.founder.peopleapi.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.core.MongoTemplate;
@Configuration
@ConfigurationProperties(prefix = "spring.data.mongodb.primary")
public class PrimaryMongoConfig extends AbstractMongoConfig{
@Override
@Primary
@Bean(name = "primaryMongoTemplate")
public MongoTemplate getMongoTemplate() throws Exception {
return new MongoTemplate((mongoDbFactory()));
}
}
package com.founder.peopleapi.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.core.MongoTemplate;
@Configuration
@ConfigurationProperties(prefix = "spring.data.mongodb.second")
public class SecondaryMongoConfig extends AbstractMongoConfig{
@Override
@Primary
@Bean(name = "secondMongoTemplate")
public MongoTemplate getMongoTemplate() throws Exception {
return new MongoTemplate((mongoDbFactory()));
}
}
\ No newline at end of file
......@@ -9,6 +9,7 @@ import com.founder.peopleapi.service.PeopleService;
import com.sun.org.apache.bcel.internal.generic.NEW;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
......@@ -24,8 +25,14 @@ import java.util.List;
public class PeopleServiceImpl implements PeopleService {
@Qualifier("primaryMongoTemplate")
@Autowired
MongoTemplate mongoTemplate;
MongoTemplate primaryMongoTemplate;
@Qualifier("secondMongoTemplate")
@Autowired
MongoTemplate secondMongoTemplate;
@Autowired
private RestTemplate restTemplate;
......@@ -221,7 +228,7 @@ public class PeopleServiceImpl implements PeopleService {
Query query = new Query();
Criteria criteria = Criteria.where("veco").is(objectValue);
query.addCriteria(criteria);
resCar = mongoTemplate.findOne(query, Car.class,"wb0099carowner");
resCar = primaryMongoTemplate.findOne(query, Car.class,"wb0099carowner");
PeopleInfo peopleInfo = new PeopleInfo();
peopleInfo.setObjectType("03");
peopleInfo.setObjectValue(resCar.getCeco());
......@@ -230,7 +237,7 @@ public class PeopleServiceImpl implements PeopleService {
Query query = new Query();
Criteria criteria = Criteria.where("imsi").is(objectValue);
query.addCriteria(criteria);
Phone resPhone = mongoTemplate.findOne(query, Phone.class, "wb0017mobilereg");
Phone resPhone = secondMongoTemplate.findOne(query, Phone.class, "wb0017mobilereg");
PeopleInfo peopleInfo = new PeopleInfo();
peopleInfo.setObjectType("03");
peopleInfo.setObjectValue(resPhone.getCecoS()!=null?resPhone.getCecoS():resPhone.getCeco());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment