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.简单的测试就这样,后面的步骤还有安全、加密、动态刷新、集成注册中心等

本文为作者原创,转载请申明

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