configserver配置中心三种配置方式

夏晋
2023-12-01

本例子包含三种git、svn、native配置方式的配置

pom.xml

<?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 https://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.2.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.ygo.framework</groupId>
    <artifactId>config-server</artifactId>
    <version>1.0.0</version>
    <name>config-server</name>
    <description>configserver for Spring Cloud</description>
    <packaging>jar</packaging>
    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Hoxton.SR4</spring-cloud.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>

        <!--<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>-->

        <!-- https://mvnrepository.com/artifact/org.tmatesoft.svnkit/svnkit -->
<!--        <dependency>-->
<!--            <groupId>org.tmatesoft.svnkit</groupId>-->
<!--            <artifactId>svnkit</artifactId>-->
<!--        </dependency>-->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </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>
    <profiles>
        <profile>
            <id>jar</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.springframework.boot</groupId>
                        <artifactId>spring-boot-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>repackage</id>
                                <goals>
                                    <goal>repackage</goal>
                                </goals>
                                <configuration>
                                    <classifier>exec</classifier>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
    <build>
        <finalName>${project.name}</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

项目配置文件:config-server-prod.yml

native-path: config-server-prod.yml

spring:
    application:
        name: config-server
    profiles:
        active: native #使用本地配置文件
#        active: git #默认,使用git作为配置仓库
#        active: subversion #使用svn作为配置仓库
    devtools:
        add-properties: true
    cloud:
        config:
            server:
                svn:
                    uri: ${svn-url}
                    order: 3
                    basedir: ${svn-basedir}
                    username: ${svn-username}
                    password: ${svn-pwd} 
                git:
                    uri: ${git-url}
                    order: 2
                    basedir: ${git-basedir}   
                    username: ${git-username}
                    password: ${git-pwd}          
                native: 
                    searchLocations: file://${native-path} #绝对路径配置方式,配置的是目录
#                    searchLocations: classpath:/ #根目录配置方式
                    order: 1 #排序,越小优先

server.port: 9999

注意:使用svn配置需解开pom.xml中的svnkit配置
访问地址:http://localhost:9999/config-server-prod.yml

客户端配置

spring:
  cloud:
    config:
      name: config-server 
      profile: prod #配置环境,对应config server Url中的{profile}
      uri: http://localhost:9999 #配置中心地址
 类似资料: