In this series of previous article demonstrates how to use OpenFeign to simplify the development of the Rest client. This article will demonstrate how to use the configuration management service provided in the Spring Cloud framework
In this experiment, using git as the repository of the configuration file, you need to ensure that the git software has been installed on this machine.
Build configuration Repository Create a directory as a configuration repository:
Enter the directory and use the git command to initialize:
1 2 cd config-repogit init .
The software creates two configuration files in the directory, namely:
config-client-development.properties:
1 2 user.role=Developer server.port=9091
config-client-production.properties:
1 2 user.role=User server.port=8081
Build configuration service Create a new maven project:
groupId: cn.com.hohistar.tutorial artifactId: springcloud-config-server
Then modify pom.xml to:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 <?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 > cn.com.hohistar.tutorial</groupId > <artifactId > springcloud-config-server</artifactId > <version > 0.0.1-SNAPSHOT</version > <packaging > jar</packaging > <name > springcloud-config-server</name > <description > Demo project for Spring Boot</description > <parent > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-parent</artifactId > <version > 2.0.5.RELEASE</version > <relativePath /> </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.version > Finchley.SR1</spring-cloud.version > </properties > <dependencies > <dependency > <groupId > org.springframework.cloud</groupId > <artifactId > spring-cloud-config-server</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 > #123;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 > </project >
Then create a new startup class in the package: cn.com.hohistar.tutorial.springcloud.configserver: SpringcloudConfigServerApplication, the content is as follows:
1 2 3 4 5 6 7 8 9 @SpringBootApplication @EnableConfigServer public class SpringcloudConfigServerApplication { public static void main (String[] args) { SpringApplication.run(SpringcloudConfigServerApplication.class , args ) ; } }
Create a configuration file for the project, create a new file named application.xml in src/main/resource:
1 2 3 4 5 6 7 8 9 server: port: 8888 spring: cloud: config: server: git: uri: file://#123;user.home}/config-repo
Create a new maven project:
groupId: cn.com.hohistar.tutorial.springboot artifactId: springboot-config-client
Then modify the pom.xml file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 <?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 > cn.com.hohistar.tutorial.springboot</groupId > <artifactId > springboot-config-client</artifactId > <version > 0.0.1-SNAPSHOT</version > <packaging > jar</packaging > <name > springboot-config-client</name > <description > Demo project for Spring Boot</description > <parent > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-parent</artifactId > <version > 2.0.5.RELEASE</version > <relativePath /> </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.version > Finchley.SR1</spring-cloud.version > </properties > <dependencies > <dependency > <groupId > org.springframework.cloud</groupId > <artifactId > spring-cloud-starter-config</artifactId > </dependency > <dependency > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-starter-actuator</artifactId > </dependency > <dependency > <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 > #123;spring-cloud.version}</version > <type > pom</type > <scope > import</scope > </dependency > </dependencies > </dependencyManagement > <repositories > <repository > <id > spring-milestones</id > <name > Spring Milestones</name > <url > https://repo.spring.io/libs-milestone</url > <snapshots > <enabled > false</enabled > </snapshots > </repository > <repository > <id > spring-snapshots</id > <name > Spring Snapshots</name > <url > https://repo.spring.io/libs-snapshot</url > <snapshots > <enabled > true</enabled > </snapshots > </repository > </repositories > <build > <plugins > <plugin > <groupId > org.springframework.boot</groupId > <artifactId > spring-boot-maven-plugin</artifactId > </plugin > </plugins > </build > </project >
In the package: cn.com.hohistar.tutorial.springboot.springbootconfigclient.web create a new RestController, named: MessageRestController, the code is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 @RefreshScope @RestController public class MessageRestController { @Value ("#123;user.role}" ) private String message; @RequestMapping ("/msg" ) String getMessage () { return this .message; } }
Create a startup class: SpringbootConfigClientApplication, the code is as follows:
1 2 3 4 5 6 7 @SpringBootApplication public class SpringbootConfigClientApplication { public static void main (String[] args) { SpringApplication.run(SpringbootConfigClientApplication.class , args ) ; } }
Add the configuration file in src/main/resource: bootstrap.properties, the content is as follows:
1 2 3 spring.application.name=config-client spring.profiles.active=development spring.cloud.config.uri=http://localhost:8888
Now you can start the service and client for testing。