spring cloud config 配置中心使用初体验(此篇幅只讲解读取方式,没有实现动态刷新哦。。,动态刷新功能有时间再写吧。。)

实现步骤:开发工具:eclipse IDE 4.0以上版本  环境 :jdk1.8  eclipse插件:Spring Tools 3.9.5版本    maven3.5.2版本

  第一步:创建一个springboot父工程工程,名字自定义,创建时记得勾选web依赖进来,这样子项目就不用重复引入了(创建时应该可以直接把打包类型jar改成pom,我没试过,我是创建好后手动改成pom文件的),工程pom文件文件如下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ylms</groupId>
    <artifactId>my-spring-cloud</artifactId>
    <version>1.0</version>

     <!-- 这里就是前面说的把jar改成pom,不然创建不了子工程的 -->
    <packaging>pom</packaging>

    <name>spring-cloud</name>
    <description>springcloud-parent-projects</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>

       <!-- 改用2.0.4版本我的会报错健康检查类找不到,直接回退一个版本正常了-->
        <version>2.0.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
         <!-- spring cloud 版本 ,这个版本匹配springboot2.0-->
         <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>

           <!-- 引入的web依赖  -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <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>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  <modules>

    <!-- 这里是创建子项目时自动生成的 -->
    <module>my-SpringCloudConfigServer</module>
    <module>my-SpringCloudConfigClient</module>
  </modules>
</project>

第二步:创建子项目  ,取名为my-SpringCloudConfigServer  即为配置文件服务端,pom文件结构如下:

<?xml version="1.0"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.ylms</groupId>
        <artifactId>my-spring-cloud</artifactId>
        <version>1.0</version>
    </parent>
    <artifactId>my-SpringCloudConfigServer</artifactId>
    <name>my-SpringCloudConfigServer</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>

        <!--引入服务端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

第三步:在当前项目创建一个启动类,在类头上引入两个注解@SpringBootApplication和@EnableConfigServer

第四步:创建源文件夹目录src/main/resources (如果已经存在改目录,忽略),在该目录下创建application.yml文件,内容如下

server:
  port: 8900
spring:
  application:
#应用名称,该值好像要和工程名一致,我没深究。。。
    name: my-SpringCloudConfigServer
  profiles:
#读取本地文件
#   active: native
#读取git仓库文件
    active: git
  cloud:
    config:
      server:
#        native:
# 读取本地文件路径在项目根目录的shared文件夹下
#          search-locations: classpath:/shared
#如果从git远程仓库读取配置文件,即打开下面的配置,并把上面的native和值注释掉          
         git:
#填写远程仓库路径
           uri: 填写你的远程仓库路径
#填写远程仓库里要读取的配置文件,该配置文件取名要注意哦,要和下面的客户端子工程项目里的配置对应!!!!
           search-paths: config-client-dev.properties
#如果仓库配置了就打开用户名和密码
#          username: 
#          password: 
           default-label: master 

第五步:如果要实现本地读取配置文件就进行以下步骤:在src/main/resources目录下创建一个目录命名为shared,并放入配置文件config-client-dev.properties,该文件就是客户端将要读取的本地文件(其实是服务端读取,然后提供给客户端而已)。内容如下:

#客户端服务
server:
  port: 8901
#用来测试的值
foo: foo version 3

配置好后,记得把第四步的配置文件内容配置好,以免后面测试报错

第六步:再次创建一个子工程取名:my-SpringCloudConfigClient 即为客户端,pom文件内容如下

<?xml version="1.0"?>
<project
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>com.ylms</groupId>
        <artifactId>my-spring-cloud</artifactId>
        <version>1.0</version>
    </parent>
    <artifactId>my-SpringCloudConfigClient</artifactId>
    <name>my-SpringCloudConfigClient</name>
    <url>http://maven.apache.org</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <dependencies>

        <!--引入客户端依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

第七步:在当前项目下创建源文件夹目录src/main/resources(如果已存在则忽略),放入文件bootstrap.yml ,内容如下

spring:
  application:
#值要和将要读取的配置文件一致
    name: config-client
  profiles:
#值要和将要读取的配置文件一致 和上面的name值拼接成config-client-dev,顾名思义就是上面第五步放入的配置文件
    active: dev
  cloud:
    config:
#配置服务的端口,即客户端读取配置文件时要到这个端口读取
      uri: http://localhost:8900
      fail-fast: true

第八步:创建一个启动类,加上注解:@SpringbootApplication

第九步:创建一个contrioller层,用来对外访问测试用,内容如下:

@RestController
public class TestController {

    //这里就是上面第五步设定的测试key:foo
    @Value("${foo}")
    private String foo;

    @RequestMapping("/getFoo")
    public String getfoo() {
        return foo;
    }
}

第十步:分别启动服务端和客户端,浏览器访问localhost:8091/getFoo,返回了 foo version 3,自此,配置成功完成!

猜你喜欢

转载自blog.csdn.net/qq_39802614/article/details/82528809