最近在熟悉公司业务代码的时候发现使用到了MongoDB,好奇实际工程中底层是如何进行封装数据访问层的,特此学习记录一下
Spring对MongoDB的操作进行了类似于JDBCTemplate的封装,集成以后可以使用MongoOperations达成我们想要的操作,或在此基础上进一步封装
ps:本工程是使用注解方式配置
yml配置:
#mongo配置
mongo:
host: 10.10.21.52:27701
credentials: LEp3EdR1O9Epdsadsdasasdffsa12
database: m_admin
connectionsPerHost: 8
minConnectionsPerHost: 2
threadsAllowedToBlockForConnectionMultiplier: 4
connectTimeout: 1000
maxWaitTime: 1500
socketKeepAlive: true
socketTimeout: 1500
MongoProperties类,这里会根据yml中的值赋值
@Component
@ConfigurationProperties(prefix = MongoProperties.PREFIX)
public class MongoProperties {
public static final String PREFIX = "mongo";
private String host;
private String credentials;
private String database;
private int connectionsPerHost;
private int minConnectionsPerHost;
private int threadsAllowedToBlockForConnectionMultiplier;
private int connectTimeout;
private int maxWaitTime;
private boolean socketKeepAlive;
private int socketTimeout;
.
.
.
MongoConfiguration,这里是整合的核心部分,利用@Configuration可实现和xml配置一样的效果,生成的beanName为 “mongods”
@Configuration
@EnableAutoConfiguration(exclude = {
MongoAutoConfiguration.class, MongoDataAutoConfiguration.class })
@ComponentScan
@EnableMongoRepositories
public class MongoDataSourceConfig