spring-boot-starter-mongodb-pool

在日常工作中,我们通过Spring Data Mongodb来操作Mongodb数据库,在Spring Boot中只需要引入spring-boot-starter-data-mongodb即可。

很多时候我们往往需要操作多个数据库(微服务架构下一个服务一个独立的库),最简单的方式就是在项目中为每个数据库配置下,比如:

配置完成后注入使用的地方使用Qualifier注入即可使用对应的数据源,比如:

上面是直接在项目中配置多数据源的方式,接下来我们讲下一个问题,数据库连接池的问题,Mongodb的驱动中自带了连接池,但是Spring Boot Starter中却没有对连接池的配置,往往我们也需要通过代码的方式去配置,比如:

虽然上面这些方式也都比较简单,但是在多个项目使用的时候都要去配置,重复代码比较严重,既然作为Starter按理来说是越简单越好,直接通过在属性文件中

配置就可以搞定,但是却不行,为此我封装了这个Pool Starter。

主要功能

可以配置多个数据源

支持连接池参数配置

支持去掉_class的配置

不支持的功能

多数据源配置后不支持Repository接口方式的使用

不支持uri配置连接信息

配置方式

testMongoTemplate和logsMongoTemplate就是每个数据源对应的MongoTemplate

同样的如果我们要操作GridFS的话也可以通过gridFsTemplateName属性来配置gridFsTemplate的名称

配置完之后就可以使用了,使用代码如下:

完整的使用案列请参考:https://github.com/yinjihuan/spring-boot-starter-mongodb-pool/tree/master/spring-boot-starter-mongodb-pool-example

完整的属性配置请参考:https://github.com/yinjihuan/spring-boot-starter-mongodb-pool/blob/master/spring-boot-starter-mongodb-pool/src/main/java/com/cxytiandi/mongodb/MongoPoolProperties.java

去掉_class

Spring Data Mongodb在保存数据的时候会自动增加一个_class字段用来关联这条数据的Document实体类,大数据量下会浪费存储空间,我们可以通过下面的配置禁用掉:

GitHub地址:https://github.com/yinjihuan/spring-boot-starter-mongodb-pool

更多技术分享请加我微信,我拉你进群进行交流:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180423G06P5K00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券