1. 程式人生 > >springcloud~配置中心的使用

springcloud~配置中心的使用

配置中心作為springcloud裡最底層的框架,所發揮的意思是舉足輕重的,所以的元件的配置資訊都可以通過springcloud config來管理,它會把配置資訊分散式的儲存到git上,所以資訊保安這塊可以放心,其它應用程式在更新配置時,直接在遠端GIT倉庫更新即可,而且更新後自動同步到對應的程式裡,不需要重啟這個應用程式!

配置服務-服務端,最底層應用

依賴包

dependencies {
    compile('org.springframework.cloud:spring-cloud-config-server',
            'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server'
    )
    testCompile(
'org.springframework.boot:spring-boot-starter-test') }

配置項

server:
  port: 8200
spring:
  application:
    name: lind-config-server
  cloud:
    config:
      server:
        git:
          uri: https://github.com/bfyxzls/lindconfig.repo.git/
          search-paths: config-repo
          username: 
[email protected]
password: 糹 eureka: instance: prefer
-ip-address: true instance-id: ${spring.application.name}:${server.port} client: serviceUrl: defaultZone: http://localhost:8761/eureka/

啟動程式碼

@EnableDiscoveryClient
@EnableConfigServer
@SpringBootApplication
class Application { public static void main(String[] args) { // demo http://localhost://8200/email-svt.yml SpringApplication.run(Application.class, args); } }

在github上新增對應的倉庫,客戶端的配置檔案將會同步到GIT倉庫,建議配置檔案採用yml語法!

/****************************************************************************************
 * 配置服務的路勁規則:
 *
 * /{application}/{profile}[/{label}]
 * /{application}-{profile}.yml
 * /{label}/{application}-{profile}.yml
 * /{application}-{profile}.properties
 * /{label}/{application}-{profile}.properties
 ****************************************************************************************/

倉儲如圖:

檢視配置中心服務端是否正常

訪問:http://localhost:8200/email-svt.yml

配置中心-客戶端,遍及在所有應用中

依賴包

dependencies {
    compile('org.springframework.boot:spring-boot-starter-web',
            'org.springframework.cloud:spring-cloud-starter-config',
            'org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')
    testCompile('org.springframework.boot:spring-boot-starter-test')
}

配置項

spring:
  application:
    name: email #注意這裡的email是指配置中心git倉庫裡yml檔案的application的部分
  cloud:
    config:
      uri: http://localhost:8200
server:
  port: 8300

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

啟動項

@EnableEurekaClient
@SpringBootApplication
public class Application {

  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

我們可以在客戶端使用$Value註解完成配置檔案的讀取!

@RestController
public class HomeController {
  @Value("${server.port}") // git配置檔案裡的key
      String serverPort;

  @RequestMapping("/")
  public String index() {
    return "serverPort=" + serverPort;
  }
}

結果如圖:

感謝各位的閱讀!