springcloudconfig的搭建

springcloudconfig的搭建

服務端

1.config-server的搭建

之前還有用eureka的現在用consul了,服務註冊中心可以不用連接

    <dependencies>
		<!-- consul看個人需不需要 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-consul-discovery</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>



2.yml文件

本地的yml

server:
  port: 8001 #服務端口
spring:
  application:
    name: config-server #應用名稱
  cloud:
    config:
      server:
        native:
          search-locations: F:/ceshi/env/dev #本地的配置文件路徑
    consul:
      discovery: true #註冊自己
      host: localhost # consul地址
      #port:8500
  profiles:
    active: native #本地配置文件必須開啓本地環境

git的yml

server:
  port: 8079
spring:
  application:
    name: config-server
  cloud:
    config:
      server:
        git:
          uri: https://github.com/authorZhao/rpc.git
          username: username #用戶名
          password: password #密碼
          #default-label: dev 默認分支,如果不開啓需要輸入分支
          search-paths: dubboInterface/env/dev,dubboInterface/env/local #配置文件目錄

下面是git的文件路徑,還有一個在local下面
git的文件路徑
3.啓動類上面加上

@SpringBootApplication
@EnableConfigServer    //開啓springcloudconfig服務端
@EnableDiscoveryClient //是否註冊到註冊中心
public class ConfigServerConsuleApplication {

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

}

4.運行測試

//訪問規則
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
{application} 就是應用名稱,比如我的:application-redis

{profile} 就是配置文件的版本比如 dev、local

{label} 比如master、dev。
//訪問網站
//第一個dev代表分支,後面的是應用名+版本,其他的方式自己測試一下就行
http://localhost:8079/dev/application-jdbc-dev.yml

客戶端

1.pom依賴

		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-config</artifactId>
		</dependency>

2.bootstrap.yml
因爲bootstrap.yml加載優先級高,在這裏面配置config

spring:
  application:
    name: application-redis
  cloud:
    config:
      profile: ${pro:dev} #這個可以通過參數控制版本,也可以寫死多個值,用逗號分隔
      #profile: test
      #uri: http://47.112.99.18:8079
      uri: http://127.0.0.1:8079/
      label: dev

3.啓動類

@SpringBootApplication
@RestController
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
    @Value("${redis.name}")
    private String name;

    @RequestMapping("/getName")
    public Map getName(){
        Map<String, Object> map = new HashMap<>();
        map.put("name",name);
        return map;
    }
}

4.測試

在這裏插入圖片描述

說明

1.之前一直想做到配置文件同名但是目錄不同名,我到現在還沒做到,只能按照標準命名
2.本地和就是把配置換成本地的就行
3.簡單的測試就這樣,後面的步驟還有安全、加密、動態刷新、集成註冊中心等

本文爲作者原創,轉載請申明

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章