liberty配置mysql数据源_spring-boot支持双数据源mysql+mongo

这里,首先想说的是,现在的web应用,处理的数据对象,有结构化的,也有非结构化的。同时存在。但是在spring-boot操作数据库的时候,若是在properties文件中配置数据源的信息,通过默认配置加载数据源的话,往往只会启动一个。

我出于想弄清如何配置数据源的目的,在这里demo一个配置两个数据源的例子。分别是mysql和mongo。mysql的持久化采用的是mybatis。

mongo的操作比较简单,直接贴上配置数据库的代码:

1 packagecom.shihuc.dbconn.sourceconfig.mongo;2

3 importjava.util.Arrays;4

5 importorg.springframework.beans.factory.annotation.Value;6 importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;7 importorg.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;8 importorg.springframework.boot.autoconfigure.mongo.MongoDataAutoConfiguration;9 importorg.springframework.context.annotation.Bean;10 importorg.springframework.context.annotation.ComponentScan;11 importorg.springframework.context.annotation.Configuration;12 importorg.springframework.data.mongodb.config.AbstractMongoConfiguration;13 importorg.springframework.data.mongodb.repository.config.EnableMongoRepositories;14

15 importcom.mongodb.Mongo;16 importcom.mongodb.MongoClient;17 importcom.mongodb.MongoCredential;18 importcom.mongodb.ServerAddress;19 importcom.mongodb.WriteConcern;20

21 @Configuration22 @EnableAutoConfiguration(exclude={MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})23 @ComponentScan24 @EnableMongoRepositories25 public class MongoDataSourceConfig extendsAbstractMongoConfiguration{26

27 @Value("${mongo.database}")28 privateString dbname;29

30 @Value("${mongo.host}")31 privateString dbhost;32

33 @Value("${mongo.port}")34 privateString dbport;35

36 @Value("${mongo.username}")37 privateString username;38

39 @Value("${mongo.password}")40 privateString password;41

42 @Override43 protectedString getDatabaseName() {44 return this.dbname;45 }46

47 publicMongoDataSourceConfig(){48 if(null == dbport || "".equalsIgnoreCase(dbport.trim())){49 dbport = "27017";50 }51 }52

53 @Override54 @Bean(name = "mongods")55 public Mongo mongo() throwsException {56 ServerAddress serverAdress = newServerAddress(dbhost, Integer.valueOf(dbport));57 MongoCredential credential =MongoCredential.createMongoCRCredential(username, dbname , password.toCharArray());58 //Do not use new Mongo(), is deprecated.

59 Mongo mongo = newMongoClient(serverAdress, Arrays.asList(credential));60 mongo.setWriteConcern(WriteConcern.SAFE);61 returnmongo;62 }63 }

mongo数据库配置继承AbstractMongoConfiguration,在这个过程中,会向spring容器注册一个mongoTemplate,这个很重要,后期操作mongo数据库时,主要靠它。

这里重点说下spring-boot和mybatis集成操作mysql的配置和注意事项。

1 packagecom.shihuc.dbconn.sourceconfig.mysql;2

3 importjavax.sql.DataSource;4

5 importorg.springframework.beans.factory.annotation.Value;6 importorg.springframework.boot.autoconfigure.EnableAutoConfiguration;7 importorg.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;8 importorg.springframework.context.annotation.Bean;9 importorg.springframework.context.annotation.Configuration;10 importorg.springframework.jdbc.datasource.DriverManagerDataSource;11

12 @Configuration13 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class})14 public classMysqlDataSourceConfig {15

16 @Value("${mysq

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值