目录:
springcloud费话之Eureka服务访问(restTemplate)
springcloud费话之Eureka接口调用(feign)
springcloud费话之断路器(hystrix in feign)
配置中心的server已经完成,需要很方便的获得配置。
由于多数配置并非变化,而是服务器启动的时候加载的,相当于某个服务器启动的时候,从svn中加载指定的yml或者properties文件
而作为一个客户端,来获取svn中的配置,并不能破坏原有的结构,所以config的client中并没有@autoConfigClient这样的注解
一、配置
在springcloud的官方网站获取pom
也有些版本要求使用spring-cloud-config-client,可以实测一下,本人使用的版本中并未使用
除此之外,还需要使用web包,完整pom如下:
<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> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.7.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <groupId>com.lyh</groupId> <artifactId>lyh-config-client</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>lyh-config-client</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> <!-- SR2会报错,未解决 --> <spring-cloud.version>Greenwich.SR1</spring-cloud.version> </properties> <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> <dependencies> <!-- web的jar 必须 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- config的client --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
二、配置文件
客户端的配置文件bootstrap.yml内容如下:
server:
port: 9005
spring:
application:
name: config-client
cloud:
config:
url: http://localhost:8888
profiles: #该内容为要获取的svn的文件名的后缀,本例中使用的是config-client-dev.yml
active: dev
三、代码
1、启动类随意
2、需要controller类,必要部分代码如下:
package com.lyh.lyh_eureka_server.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class TestController { @Value("${hello}") private String hello; @RequestMapping("/getProperties") public Object getProperties() { return hello; } }
3、注意:
注意端口,注意application的name,注意配置文件的文件名,注意profiles属性
四、测试
启动server
启动client
访问上述步骤中的controller,结果如下:
server的console打印内容如下:
以上!