增加 mongodb 整合用例

This commit is contained in:
罗祥
2018-12-26 13:31:48 +08:00
parent 4098a22999
commit a21b3c5318
12 changed files with 475 additions and 3 deletions

View File

@ -0,0 +1,25 @@
package com.heibaiying.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author : heibaiying
* @description :
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Programmer {
private String name;
private int age;
private float salary;
private Date birthday;
}

View File

@ -0,0 +1,39 @@
package com.heibaiying.config;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientOptions;
import com.mongodb.ServerAddress;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
/**
* @author : heibaiying
* @description : Mongo 配置类
*/
@Configuration
@ComponentScan(value = "com.heibaiying.*")
public class MongoConfig {
@Bean
public MongoDbFactory mongoDbFactory(MongoProperty mongo) {
MongoClientOptions options = MongoClientOptions.builder()
.threadsAllowedToBlockForConnectionMultiplier(mongo.getMultiplier())
.connectionsPerHost(mongo.getConnectionsPerHost())
.connectTimeout(mongo.getConnectTimeout())
.maxWaitTime(mongo.getMaxWaitTime())
.socketTimeout(mongo.getSocketTimeout())
.build();
MongoClient client = new MongoClient(new ServerAddress(mongo.getHost(), mongo.getPort()), options);
return new SimpleMongoDbFactory(client, mongo.getDbname());
}
@Bean
public MongoTemplate mongoTemplate(MongoDbFactory mongoDbFactory) {
return new MongoTemplate(mongoDbFactory);
}
}

View File

@ -0,0 +1,35 @@
package com.heibaiying.config;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
/**
* @author : heibaiying
* @description : Mongo 配置属性
*/
@Data
@Configuration
@PropertySource(value = "classpath:mongodb.properties")
public class MongoProperty {
@Value("${mongo.host}")
private String host;
@Value("${mongo.port}")
private int port;
@Value("${mongo.dbname}")
private String dbname;
@Value("${mongo.connectionsPerHost}")
private int connectionsPerHost;
@Value("${mongo.threadsAllowedToBlockForConnectionMultiplier}")
private int multiplier;
@Value("${mongo.connectTimeout}")
private int connectTimeout;
@Value("${mongo.maxWaitTime}")
private int maxWaitTime;
@Value("${mongo.socketKeepAlive}")
private boolean socketKeepAlive;
@Value("${mongo.socketTimeout}")
private int socketTimeout;
}

View File

@ -0,0 +1,17 @@
mongo.host=192.168.200.228
mongo.port=27017
# <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>. Ĭ<><C4AC><EFBFBD><EFBFBD>'db'.
mongo.dbname=database
# ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mongo.connectionsPerHost=10
# <20>̶߳<DFB3><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>connectionsPerHostֵ<74><D6B5><EFBFBD>˵Ľ<CBB5><C4BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶߳<DFB3><CCB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˶<EFBFBD><CBB6>оͻ<D0BE><CDBB>׳<EFBFBD><D7B3>
mongo.threadsAllowedToBlockForConnectionMultiplier=5
# <20><><EFBFBD>ӳ<EFBFBD>ʱ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD> 0<><30>Ĭ<EFBFBD><C4AC>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>޴<EFBFBD><DEB4><EFBFBD>
mongo.connectTimeout=1000
# <20><><EFBFBD><EFBFBD><EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>߳<EFBFBD><DFB3><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1> Ĭ<><C4AC><EFBFBD><EFBFBD>120000 ms (2 minutes).
mongo.maxWaitTime=1500
# <20><><EFBFBD>ֻ<D6BB><EEB6AF>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>׽<EFBFBD><D7BD>ֱ<EFBFBD><D6B1>ֻ<D6BB><EEB6AF>ʱ <20>ٷ<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊtrue <20>Ҳ<EFBFBD><D2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
mongo.socketKeepAlive=true
# <20><><EFBFBD><EFBFBD>Ⱥ<EFBFBD><C8BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD><D3B5>׽<EFBFBD><D7BD>ֳ<EFBFBD>ʱ<EFBFBD><CAB1>
mongo.socketTimeout=1500