feat: 初始化配置中心项目

This commit is contained in:
2026-01-14 21:02:13 +08:00
commit 4436d3ee88
95 changed files with 8736 additions and 0 deletions
@@ -0,0 +1,41 @@
# kenaito-conf-springboot2-client-demo
配置中心客户端示例项目。
## 配置说明
在 `application.properties` 中配置:
```properties
# 配置中心地址
kenaito.config.server=http://localhost:8080
kenaito.config.appName=demo
kenaito.config.env=dev
kenaito.config.version=latest
kenaito.config.profile=dev
```
## 运行步骤
1. 先安装 kenaito-conf-springboot2-client 到本地 Maven 仓库:
```bash
cd E:\SelfDev\Gitea2026\kenaito-conf\kenaito-conf-springboot2-client
mvn clean install -DskipTests
```
2. 运行示例项目:
```bash
cd E:\SelfDev\Gitea2026\kenaito-springboot-demo
mvn spring-boot:run
```
3. 访问测试:
```bash
curl http://localhost:8081/
```
## 配置优先级
远程配置 > 本地配置
在配置中心添加应用 `demo` 的配置后,远程配置会覆盖本地同名配置。
@@ -0,0 +1,51 @@
<?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.odboy</groupId>
<artifactId>kenaito-conf-springboot2-client-demo</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>kenaito-conf-springboot2-client-demo</name>
<description>Demo project for kenaito-conf config center</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.18</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- kenaito-conf springboot client -->
<dependency>
<groupId>cn.odboy</groupId>
<artifactId>kenaito-conf-springboot2-client</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
@@ -0,0 +1,43 @@
package cn.odboy.demo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
@RestController
public class ConfigController {
@Value("${app.name:unknown}")
private String appName;
@Value("${app.version:unknown}")
private String appVersion;
@Value("${db.url:unknown}")
private String dbUrl;
@Value("${db.username:unknown}")
private String dbUsername;
@Value("${custom.config1:unknown}")
private String customConfig1;
@GetMapping("/")
public Map<String, Object> index() {
Map<String, Object> result = new HashMap<>();
result.put("appName", appName);
result.put("appVersion", appVersion);
result.put("dbUrl", dbUrl);
result.put("dbUsername", dbUsername);
result.put("customConfig1", customConfig1);
return result;
}
@GetMapping("/health")
public String health() {
return "OK";
}
}
@@ -0,0 +1,12 @@
package cn.odboy.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@@ -0,0 +1,2 @@
org.springframework.boot.env.EnvironmentPostProcessor=\
cn.odboy.confcenter.springboot.KenaitoEnvironmentInitializer
@@ -0,0 +1,19 @@
# Server
server.port=8081
# Application
app.name=kenaito-conf-springboot2-client-demo
app.version=1.0.0
# Kenaito Config Center
kenaito.config.baseUrl=http://localhost:8080
kenaito.config.appName=demo
kenaito.config.profile=dev
kenaito.config.version=latest
kenaito.config.token=
kenaito.config.sync-interval-seconds=30
# Local configs (will be overridden by remote if exists)
db.url=jdbc:mysql://localhost:3306/local_db
db.username=local_user
custom.config1=local_value