Commit a705c276 by 张永田

mongodb多数据源配置

parent 347ad7be
...@@ -4,14 +4,16 @@ import org.mybatis.spring.annotation.MapperScan; ...@@ -4,14 +4,16 @@ import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; 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.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
import org.springframework.boot.web.client.RestTemplateBuilder; import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
@SpringBootApplication//排除自动配置 @SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})//排除自动配置
@ComponentScan(basePackages = {"com.founder"}) @ComponentScan(basePackages = {"com.founder"})
@MapperScan(basePackages={"com.founder.peopleapi.mapper"}) @MapperScan(basePackages={"com.founder.peopleapi.mapper"})
@EnableDiscoveryClient @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; ...@@ -9,6 +9,7 @@ import com.founder.peopleapi.service.PeopleService;
import com.sun.org.apache.bcel.internal.generic.NEW; import com.sun.org.apache.bcel.internal.generic.NEW;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; 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.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Query;
...@@ -24,8 +25,14 @@ import java.util.List; ...@@ -24,8 +25,14 @@ import java.util.List;
public class PeopleServiceImpl implements PeopleService { public class PeopleServiceImpl implements PeopleService {
@Qualifier("primaryMongoTemplate")
@Autowired @Autowired
MongoTemplate mongoTemplate; MongoTemplate primaryMongoTemplate;
@Qualifier("secondMongoTemplate")
@Autowired
MongoTemplate secondMongoTemplate;
@Autowired @Autowired
private RestTemplate restTemplate; private RestTemplate restTemplate;
...@@ -221,7 +228,7 @@ public class PeopleServiceImpl implements PeopleService { ...@@ -221,7 +228,7 @@ public class PeopleServiceImpl implements PeopleService {
Query query = new Query(); Query query = new Query();
Criteria criteria = Criteria.where("veco").is(objectValue); Criteria criteria = Criteria.where("veco").is(objectValue);
query.addCriteria(criteria); query.addCriteria(criteria);
resCar = mongoTemplate.findOne(query, Car.class,"wb0099carowner"); resCar = primaryMongoTemplate.findOne(query, Car.class,"wb0099carowner");
PeopleInfo peopleInfo = new PeopleInfo(); PeopleInfo peopleInfo = new PeopleInfo();
peopleInfo.setObjectType("03"); peopleInfo.setObjectType("03");
peopleInfo.setObjectValue(resCar.getCeco()); peopleInfo.setObjectValue(resCar.getCeco());
...@@ -230,7 +237,7 @@ public class PeopleServiceImpl implements PeopleService { ...@@ -230,7 +237,7 @@ public class PeopleServiceImpl implements PeopleService {
Query query = new Query(); Query query = new Query();
Criteria criteria = Criteria.where("imsi").is(objectValue); Criteria criteria = Criteria.where("imsi").is(objectValue);
query.addCriteria(criteria); query.addCriteria(criteria);
Phone resPhone = mongoTemplate.findOne(query, Phone.class, "wb0017mobilereg"); Phone resPhone = secondMongoTemplate.findOne(query, Phone.class, "wb0017mobilereg");
PeopleInfo peopleInfo = new PeopleInfo(); PeopleInfo peopleInfo = new PeopleInfo();
peopleInfo.setObjectType("03"); peopleInfo.setObjectType("03");
peopleInfo.setObjectValue(resPhone.getCecoS()!=null?resPhone.getCecoS():resPhone.getCeco()); 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