1. 程式人生 > >Spring Cloud (7) | Mongodb 微服務

Spring Cloud (7) | Mongodb 微服務

新建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);
}

}

更多系列文章推薦: