springboot下使用JdbcTemplate和MongoTemplate链接多个mongodb源+sql源
2017-05-22 19:07
393 查看
application.yml配置
配置类:DBConfig.java
Tips
1.mongo的uri的user或者pwd中若含有@等字符,需要对其进行urlencode。
2.上例中twoMongoTemplate会在插入mongo库时自动生成”_class”的key,若想去掉”_class”,使用oneMongoTemplate的例子即可。
db: mongo: one: "mongodb://[user]:[pwd]@[ip]:[port]/[db]" two: "mongodb://[user]:[pwd]@[ip]:[port]/[db]" sql: url:"jdbc:sqlserver://ip;DatabaseName=;instanceName=" user: "test" pwd: "test" driver: "com.microsoft.sqlserver.jdbc.SQLServerDriver"
配置类:DBConfig.java
@Configuration public class DBConfig { @Value("${db.sql.url}") private String sqlUrl; @Value("${db.sql.user}") private String sqlUsername; @Value("${db.sql.pwd}") private String sqlPassword; @Value("${db.sql.driver}") private String sqlDriver; @Value("${db.mongo.one}") private String mongoOneUri; @Value("${db.mongo.two}") private String mongoTwoUri; @Bean(name = "sqlDataSource") public DataSource sourceDataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(sqlDriver); dataSource.setUrl(sqlUrl); dataSource.setUsername(sqlUsername); dataSource.setPassword(sqlPassword); return dataSource; } @Bean(name = "oneMongoFactory") @Primary public MongoDbFactory oneMongoDbFactory() throws Exception { return new SimpleMongoDbFactory(new MongoClientURI(mongoOneUri)); } @Bean(name = "twoMongoDbFactory") public MongoDbFactory twoMongoDbFactory() throws Exception { return new SimpleMongoDbFactory(new MongoClientURI(mongoTwoUri)); } @Bean(name = "sqlJdbcTemplate") public JdbcTemplate JdbcTemplate(@Qualifier("sqlDataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "oneMongoTemplate") @Primary public MongoTemplate oneMongoTemplate(@Qualifier("oneMongoFactory") MongoDbFactory mongoDbFactory) { MappingMongoConverter mappingMongoConverter = new MappingMongoConverter(new DefaultDbRefResolver(mongoDbFactory), new MongoMappingContext()); mappingMongoConverter.setTypeMapper(new DefaultMongoTypeMapper(null)); return new MongoTemplate(mongoDbFactory, mappingMongoConverter); } @Bean(name = "twoMongoTemplate") public MongoTemplate twoMongoTemplate(@Qualifier("twoMongoDbFactory") MongoDbFactory mongoDbFactory) { return new MongoTemplate(mongoDbFactory); }
Tips
1.mongo的uri的user或者pwd中若含有@等字符,需要对其进行urlencode。
2.上例中twoMongoTemplate会在插入mongo库时自动生成”_class”的key,若想去掉”_class”,使用oneMongoTemplate的例子即可。
相关文章推荐
- springboot学习笔记(五)springboot MongoTemplate的使用
- mongodb和spring集成中MongoTemplate的总结是使用方法
- Spring Boot中使用JdbcTemplate访问数据库
- Spring Boot中使用JdbcTemplate访问数据库
- 5 在springboot中使用ElasticsearchTemplate 操作ElasticSearch(本机和远程服务器)
- Spring Boot中使用jdbctemplate 操作MYSQL数据库实例
- (9)使用JdbcTemplate【从零开始学Spring Boot】
- (9)使用JdbcTemplate【从零开始学Spring Boot】
- Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用
- (6)spring boot下使用jdbcTemplate操作数据库
- 利用springboot使用JdbcTemplate连接数据库
- spring boot使用mongo:code1
- 在spring boot中使用restTemplate上传大文件Java heap space
- 9. 使用JdbcTemplate【从零开始学Spring Boot】
- mongodb和spring集成中MongoTemplate的总结是使用方法
- spring boot + JdbcTemplate 使用druid数据源
- 9. 使用JdbcTemplate【从零开始学Spring Boot】
- spring boot RestTemplate 发送 get 请求使用误区
- Spring Boot 学习9--使用JdbcTemplate
- Spring Boot干货系列:(八)数据存储篇-SQL关系型数据库之JdbcTemplate的使用