Spring Cloud (7) | Mongodb 微服務
阿新 • • 發佈:2019-02-17
新建spring-cloud-mongodb工程,mongodb微服務提供動態讀取git中mongodb配置資訊
pom.xml:
...
<dependencies>
...
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
...
</dependencies>
...
bootstrap.properties
spring.cloud.config.uri=http://localhost:7878
spring.cloud.config.name=git
spring.cloud.config.label=develop
spring.cloud.config.profile=test
eureka.client.service-url.defaultZone=http://localhost:8761/eureka/
spring.application.name=spring-cloud-mongodb
server.port =8881
讀取git中的配置檔案,MongodbProperties.java:
...
@ConfigurationProperties(prefix = MongodbProperties.MON, ignoreUnknownFields = false)
public class MongodbProperties {
//對應配置檔案裡的配置鍵
public final static String MON = "mon";
public static String getMon() {
return MON;
}
private String database;
private String host;
private String port;
private String username;
private String password;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getDatabase() {
return database;
}
public void setDatabase(String database) {
this.database = database;
}
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
}
Mongodb連線,MongoData.java:
...
@Configuration
@EnableConfigurationProperties(MongodbProperties.class)
public class MongoData {
@Autowired
private MongodbProperties mongodbProperties;
private static MongoDatabase mongoDatabase;
private MongodbProperties config;
public MongoData(MongodbProperties mongodbProperties){
this.config = mongodbProperties;
}
@Bean
public MongoClient mongoClient() {
List<ServerAddress> addresses = new ArrayList<ServerAddress>();
MongoCredential credential = MongoCredential.createCredential(
config.getUsername(), config.getDatabase(), config.getPassword().toCharArray());
List<MongoCredential> creList = new ArrayList<MongoCredential>();
addresses.add(new ServerAddress(config.getHost(), Integer.parseInt(config.getPort())));
creList.add(credential);
MongoClient mongoClient = new MongoClient(addresses, creList);
mongoDatabase = mongoClient.getDatabase(config.getDatabase());
return mongoClient;
}
public MongoCollection<Document> getColl(){
return mongoDatabase.getCollection(collName);
}
}
更多系列文章推薦: