Springboot-mongodb

2021年2月25日 作者 陈益
一、支持事物的要求
  1. mongodb 4版本以上。
  2. 必须采用副本集的工作模式。
二、springboot整合mongodb
  1. mongodb://balidrop:123456@192.168.8.167:27018,192.168.8.167:27017,192.168.8.167:27019/balidrop?slaveOk=true&replicaSet=balidropMogdo&write=1&readPreference=secondaryPreferred&connectTimeoutMS=300000
  2. 支持链接池的方式:
@Bean(name = “mongoClientOptions”) MongoClientOptions mongoClientOptions() { return MongoClientOptions.builder().connectionsPerHost(50).minConnectionsPerHost(5).build(); }
  1. 增加事物支持
@Bean(name = “mongoTransactionManager”) MongoTransactionManager mongoTransactionManager(MongoDbFactory factory) { return new MongoTransactionManager(factory); }
  1. Entity加不加@Document注解都可以,重点:@DbRelf 如果存在表示存储的是关联的ID,在查询的时候会自动查询关联的对象,可采用参数 lazy来进行代理。
  2. Repository 的动态代理其实底层用的依旧是 mongodbTemplate来进行增删改成的。其实现类是: org.springframework.data.mongodb.repository.support.SimpleMongoRepository
  3. 核心 :MongoRepositoriesAutoConfiguration ->MongoRepositoriesAutoConfigureRegistrar ->MongoRepositoryConfigurationExtension来进行代理对象的生成 MongoRepositoryFactoryBean ->ProxyFactory