From 46f6e5223c0752b8e187c6a30cb39dc6bf7f4b47 Mon Sep 17 00:00:00 2001 From: "Yangkai.Shen" <237497819@qq.com> Date: Wed, 17 Aug 2022 20:13:26 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20admin=20=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- demo-admin/README.md | 39 ++++-- demo-admin/admin-client/.gitignore | 25 ---- demo-admin/admin-client/README.md | 140 +++++++++++---------- demo-admin/admin-client/pom.xml | 18 ++- ...pplication.java => AdminClientApplication.java} | 8 +- .../admin/client/controller/IndexController.java | 6 +- .../admin/client/controller/TestController.java | 30 +++++ .../src/main/resources/application.yml | 21 +++- .../admin/client/AdminClientApplicationTests.java | 13 ++ .../SpringBootDemoAdminClientApplicationTests.java | 16 --- demo-admin/admin-server/.gitignore | 25 ---- demo-admin/admin-server/README.md | 115 +++++++---------- demo-admin/admin-server/pom.xml | 4 +- ...pplication.java => AdminServerApplication.java} | 8 +- .../src/main/resources/application.yml | 14 +++ .../admin/server/AdminServerApplicationTests.java | 13 ++ .../SpringBootDemoAdminServerApplicationTests.java | 16 --- demo-admin/pom.xml | 7 +- pom.xml | 2 +- 19 files changed, 269 insertions(+), 251 deletions(-) delete mode 100644 demo-admin/admin-client/.gitignore rename demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/{SpringBootDemoAdminClientApplication.java => AdminClientApplication.java} (60%) create mode 100644 demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/TestController.java create mode 100644 demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/AdminClientApplicationTests.java delete mode 100644 demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java delete mode 100644 demo-admin/admin-server/.gitignore rename demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/{SpringBootDemoAdminServerApplication.java => AdminServerApplication.java} (66%) create mode 100644 demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/AdminServerApplicationTests.java delete mode 100644 demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java diff --git a/demo-admin/README.md b/demo-admin/README.md index d46f30f..4711e65 100644 --- a/demo-admin/README.md +++ b/demo-admin/README.md @@ -1,14 +1,10 @@ -# spring-boot-demo-admin +## spring-boot-demo-admin > 本 demo 主要演示了 Spring Boot 如何集成 Admin 管控台,监控管理 Spring Boot 应用,分别为 admin 服务端和 admin 客户端,两个模块。 -## 运行步骤 +### 1.开发步骤 -1. 进入 `spring-boot-demo-admin-server` 服务端,启动管控台服务端程序 -2. 进入 `spring-boot-demo-admin-client` 客户端,启动客户端程序,注册到服务端 -3. 观察服务端里,客户端程序的运行状态等信息 - -## pom.xml +#### 1.1.pom.xml ```xml @@ -20,18 +16,21 @@ com.xkcoding 1.0.0-SNAPSHOT + 4.0.0 - spring-boot-demo-admin + demo-admin + 1.0.0-SNAPSHOT pom - 2.1.0 + 17 + 3.0.0-M4 - spring-boot-demo-admin-client - spring-boot-demo-admin-server + admin-server + admin-client @@ -49,3 +48,21 @@ ``` +#### 1.2.admin-server开发 + +参考 [admin-server 模块](./admin-server/README.md) + +#### 1.3.admin-client开发 + +参考 [admin-client 模块](./admin-client/README.md) + +### 2.测试 + +1. 进入 [admin-server](./admin-server) 服务端,启动管控台服务端程序 +2. 进入 [admin-client](./admin-client) 客户端,启动客户端程序,注册到服务端 +3. 打开 `http://localhost:8000` 观察 client 是否注册成功,以及实例注册上来的详细信息 +4. Spring Boot Admin 支持在线查看日志,但是需要客户端事先配置日志,配置好之后,就可以在线查看日志了 + +### 3.参考 + +官方文档:https://codecentric.github.io/spring-boot-admin/3.0.0-M4/#getting-started diff --git a/demo-admin/admin-client/.gitignore b/demo-admin/admin-client/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/demo-admin/admin-client/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/demo-admin/admin-client/README.md b/demo-admin/admin-client/README.md index 65a20c1..4b559fb 100644 --- a/demo-admin/admin-client/README.md +++ b/demo-admin/admin-client/README.md @@ -1,95 +1,92 @@ -# spring-boot-demo-admin-client +## spring-boot-demo-admin-client > 本 demo 主要演示了普通项目如何集成 Spring Boot Admin,并把自己的运行状态交给 Spring Boot Admin 进行展现。 -## pom.xml +### 1.开发步骤 + +#### 1.1.增加依赖 ```xml - - - 4.0.0 - - spring-boot-demo-admin-client - 1.0.0-SNAPSHOT - jar - - spring-boot-demo-admin-client - Demo project for Spring Boot - - - com.xkcoding - spring-boot-demo-admin - 1.0.0-SNAPSHOT - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - - - - de.codecentric - spring-boot-admin-starter-client - - - - org.springframework.boot - spring-boot-starter-security - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - spring-boot-demo-admin-client - - - org.springframework.boot - spring-boot-maven-plugin - - - - - + + + org.springframework.boot + spring-boot-starter-web + + + + de.codecentric + spring-boot-admin-starter-client + + + + + org.springframework.boot + spring-boot-starter-security + + + + org.springframework.boot + spring-boot-starter-test + test + + + + org.projectlombok + lombok + true + + +``` + +#### 1.2.增加测试路由以及日志支持 + +```java +@Slf4j +@RestController +@RequestMapping("/test") +public class TestController { + + @GetMapping + public String test() { + int range = new Random().nextInt(1, 11); + for (int i = 0; i < range; i++) { + log.info("#TestController#test: info log total: {}, now is {}", range, (i + 1)); + } + return "Just for testing"; + } + +} ``` -## application.yml +#### 1.3.修改配置文件 ```yaml server: port: 8080 servlet: context-path: /demo + spring: application: # Spring Boot Admin展示的客户端项目名,不设置,会使用自动生成的随机id name: spring-boot-demo-admin-client + security: + user: + name: xkcoding + password: 123456 boot: admin: client: # Spring Boot Admin 服务端地址 url: "http://localhost:8000/" + username: ${spring.security.user.name} + password: ${spring.security.user.password} instance: + service-host-type: ip metadata: # 客户端端点信息的安全认证信息 user.name: ${spring.security.user.name} user.password: ${spring.security.user.password} - security: - user: - name: xkcoding - password: 123456 management: endpoint: health: @@ -100,5 +97,18 @@ management: exposure: # 设置端点暴露的哪些内容,默认["health","info"],设置"*"代表暴露所有可访问的端点 include: "*" + info: + env: + enabled: true +# 增加日志配置,为了展示 Spring Boot Admin 的观察在线日志的能力 +logging: + file: + name: logs/${spring.application.name}.log + pattern: + file: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx" ``` +### 2.测试 + +1. 启动 `AdminServerApplication` 之后,再启动 `AdminClientApplication`,然后输入 `http://localhost:8080/demo` ,观察 client 程序是否启动成功 +2. 输入 `http://localhost:8080/demo/test` ,观察 admin-server 是否可以在线查看日志 diff --git a/demo-admin/admin-client/pom.xml b/demo-admin/admin-client/pom.xml index d5708b4..a2b2140 100644 --- a/demo-admin/admin-client/pom.xml +++ b/demo-admin/admin-client/pom.xml @@ -16,9 +16,7 @@ Demo project for Spring Boot - UTF-8 - UTF-8 - 1.8 + 17 @@ -32,6 +30,7 @@ spring-boot-admin-starter-client + org.springframework.boot spring-boot-starter-security @@ -42,6 +41,12 @@ spring-boot-starter-test test + + + org.projectlombok + lombok + true + @@ -50,6 +55,13 @@ org.springframework.boot spring-boot-maven-plugin + + + + build-info + + + diff --git a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplication.java b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/AdminClientApplication.java similarity index 60% rename from demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplication.java rename to demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/AdminClientApplication.java index 755bb81..e9b6ac5 100644 --- a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplication.java +++ b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/AdminClientApplication.java @@ -5,16 +5,16 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; /** *

- * 启动类 + * Spring Boot Admin Client 启动类 *

* * @author yangkai.shen - * @date Created in 2018-10-8 14:16 + * @date Created in 2022-08-17 16:42 */ @SpringBootApplication -public class SpringBootDemoAdminClientApplication { +public class AdminClientApplication { public static void main(String[] args) { - SpringApplication.run(SpringBootDemoAdminClientApplication.class, args); + SpringApplication.run(AdminClientApplication.class, args); } } diff --git a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java index 98f68ac..e47302a 100644 --- a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java +++ b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/IndexController.java @@ -5,16 +5,16 @@ import org.springframework.web.bind.annotation.RestController; /** *

- * 首页 + * 测试路由-首页 *

* * @author yangkai.shen - * @date Created in 2018-10-08 14:15 + * @date Created in 2022-08-17 16:43 */ @RestController public class IndexController { @GetMapping(value = {"", "/"}) public String index() { - return "This is a Spring Boot Admin Client."; + return "This is a Spring Boot Admin Client Demo."; } } diff --git a/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/TestController.java b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/TestController.java new file mode 100644 index 0000000..d7cc0fe --- /dev/null +++ b/demo-admin/admin-client/src/main/java/com/xkcoding/admin/client/controller/TestController.java @@ -0,0 +1,30 @@ +package com.xkcoding.admin.client.controller; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Random; + +/** + * 测试路由-Just for testing + * + * @author 一珩(沈扬凯 yk.shen@tuya.com) + * @date 2022-08-17 16:51 + */ +@Slf4j +@RestController +@RequestMapping("/test") +public class TestController { + + @GetMapping + public String test() { + int range = new Random().nextInt(1, 11); + for (int i = 0; i < range; i++) { + log.info("#TestController#test: info log total: {}, now is {}", range, (i + 1)); + } + return "Just for testing"; + } + +} diff --git a/demo-admin/admin-client/src/main/resources/application.yml b/demo-admin/admin-client/src/main/resources/application.yml index 69a1f9a..bf9937a 100644 --- a/demo-admin/admin-client/src/main/resources/application.yml +++ b/demo-admin/admin-client/src/main/resources/application.yml @@ -2,24 +2,28 @@ server: port: 8080 servlet: context-path: /demo + spring: application: # Spring Boot Admin展示的客户端项目名,不设置,会使用自动生成的随机id name: spring-boot-demo-admin-client + security: + user: + name: xkcoding + password: 123456 boot: admin: client: # Spring Boot Admin 服务端地址 url: "http://localhost:8000/" + username: ${spring.security.user.name} + password: ${spring.security.user.password} instance: + service-host-type: ip metadata: # 客户端端点信息的安全认证信息 user.name: ${spring.security.user.name} user.password: ${spring.security.user.password} - security: - user: - name: xkcoding - password: 123456 management: endpoint: health: @@ -30,3 +34,12 @@ management: exposure: # 设置端点暴露的哪些内容,默认["health","info"],设置"*"代表暴露所有可访问的端点 include: "*" + info: + env: + enabled: true +# 增加日志配置,为了展示 Spring Boot Admin 的观察在线日志的能力 +logging: + file: + name: logs/${spring.application.name}.log + pattern: + file: "%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx" diff --git a/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/AdminClientApplicationTests.java b/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/AdminClientApplicationTests.java new file mode 100644 index 0000000..02d980d --- /dev/null +++ b/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/AdminClientApplicationTests.java @@ -0,0 +1,13 @@ +package com.xkcoding.admin.client; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class AdminClientApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java b/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java deleted file mode 100644 index 283f40a..0000000 --- a/demo-admin/admin-client/src/test/java/com/xkcoding/admin/client/SpringBootDemoAdminClientApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.xkcoding.admin.client; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SpringBootDemoAdminClientApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/demo-admin/admin-server/.gitignore b/demo-admin/admin-server/.gitignore deleted file mode 100644 index 82eca33..0000000 --- a/demo-admin/admin-server/.gitignore +++ /dev/null @@ -1,25 +0,0 @@ -/target/ -!.mvn/wrapper/maven-wrapper.jar - -### STS ### -.apt_generated -.classpath -.factorypath -.project -.settings -.springBeans -.sts4-cache - -### IntelliJ IDEA ### -.idea -*.iws -*.iml -*.ipr - -### NetBeans ### -/nbproject/private/ -/build/ -/nbbuild/ -/dist/ -/nbdist/ -/.nb-gradle/ \ No newline at end of file diff --git a/demo-admin/admin-server/README.md b/demo-admin/admin-server/README.md index f89cd31..4a2fb4a 100644 --- a/demo-admin/admin-server/README.md +++ b/demo-admin/admin-server/README.md @@ -1,90 +1,67 @@ -# spring-boot-demo-admin-server +## spring-boot-demo-admin-server > 本 demo 主要演示了如何搭建一个 Spring Boot Admin 的服务端项目,可视化展示自己客户端项目的运行状态。 -## pom.xml +### 1.开发步骤 -```xml - - - 4.0.0 - - spring-boot-demo-admin-server - 1.0.0-SNAPSHOT - jar - - spring-boot-demo-admin-server - Demo project for Spring Boot - - - com.xkcoding - spring-boot-demo-admin - 1.0.0-SNAPSHOT - - - - UTF-8 - UTF-8 - 1.8 - - - - - org.springframework.boot - spring-boot-starter-web - +#### 1.1.增加依赖 - - de.codecentric - spring-boot-admin-starter-server - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - spring-boot-demo-admin-server - - - org.springframework.boot - spring-boot-maven-plugin - - - - - +```xml + + + org.springframework.boot + spring-boot-starter-web + + + + de.codecentric + spring-boot-admin-starter-server + + + + org.springframework.boot + spring-boot-starter-test + test + + ``` -## SpringBootDemoAdminServerApplication.java +#### 1.2.启动类配置 ```java -/** - *

- * 启动类 - *

- * - * @author yangkai.shen - * @date Created in 2018-10-08 14:08 - */ @EnableAdminServer @SpringBootApplication -public class SpringBootDemoAdminServerApplication { +public class AdminServerApplication { - public static void main(String[] args) { - SpringApplication.run(SpringBootDemoAdminServerApplication.class, args); - } + public static void main(String[] args) { + SpringApplication.run(AdminServerApplication.class, args); + } } ``` -## application.yml +#### 1.3.修改配置文件 ```yaml server: port: 8000 +spring: + application: + name: spring-boot-demo-admin-server + boot: + admin: + instance-auth: + enabled: true + default-user-name: xkcoding + default-password: 123456 + ui: + external-views: + - label: "xkcoding 🚀" + url: https://xkcoding.com + order: 2000 + ``` +### 2.测试 + +1. 启动 `AdminServerApplication`,然后打开 `http://localhost:8000` +2. 再启动 `AdminClientApplication`,等待启动成功之后,观察是否成功注册上服务端 diff --git a/demo-admin/admin-server/pom.xml b/demo-admin/admin-server/pom.xml index 0e9f7d6..8ac7218 100644 --- a/demo-admin/admin-server/pom.xml +++ b/demo-admin/admin-server/pom.xml @@ -16,9 +16,7 @@ Demo project for Spring Boot - UTF-8 - UTF-8 - 1.8 + 17 diff --git a/demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplication.java b/demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/AdminServerApplication.java similarity index 66% rename from demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplication.java rename to demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/AdminServerApplication.java index 5bf7bad..ab4679c 100644 --- a/demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplication.java +++ b/demo-admin/admin-server/src/main/java/com/xkcoding/admin/server/AdminServerApplication.java @@ -6,17 +6,17 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; /** *

- * 启动类 + * Spring Boot Admin Server 启动类 *

* * @author yangkai.shen - * @date Created in 2018-10-08 14:08 + * @date Created in 2022-08-17 16:41 */ @EnableAdminServer @SpringBootApplication -public class SpringBootDemoAdminServerApplication { +public class AdminServerApplication { public static void main(String[] args) { - SpringApplication.run(SpringBootDemoAdminServerApplication.class, args); + SpringApplication.run(AdminServerApplication.class, args); } } diff --git a/demo-admin/admin-server/src/main/resources/application.yml b/demo-admin/admin-server/src/main/resources/application.yml index 00cff46..0192741 100644 --- a/demo-admin/admin-server/src/main/resources/application.yml +++ b/demo-admin/admin-server/src/main/resources/application.yml @@ -1,2 +1,16 @@ server: port: 8000 +spring: + application: + name: spring-boot-demo-admin-server + boot: + admin: + instance-auth: + enabled: true + default-user-name: xkcoding + default-password: 123456 + ui: + external-views: + - label: "xkcoding 🚀" + url: https://xkcoding.com + order: 2000 diff --git a/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/AdminServerApplicationTests.java b/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/AdminServerApplicationTests.java new file mode 100644 index 0000000..85a308a --- /dev/null +++ b/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/AdminServerApplicationTests.java @@ -0,0 +1,13 @@ +package com.xkcoding.admin.server; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class AdminServerApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git a/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java b/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java deleted file mode 100644 index d70d4f8..0000000 --- a/demo-admin/admin-server/src/test/java/com/xkcoding/admin/server/SpringBootDemoAdminServerApplicationTests.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.xkcoding.admin.server; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.test.context.junit4.SpringRunner; - -@RunWith(SpringRunner.class) -@SpringBootTest -public class SpringBootDemoAdminServerApplicationTests { - - @Test - public void contextLoads() { - } - -} diff --git a/demo-admin/pom.xml b/demo-admin/pom.xml index eccaa84..43be5e9 100644 --- a/demo-admin/pom.xml +++ b/demo-admin/pom.xml @@ -7,18 +7,21 @@ com.xkcoding 1.0.0-SNAPSHOT + 4.0.0 demo-admin + 1.0.0-SNAPSHOT pom - 2.1.0 + 17 + 3.0.0-M4 - admin-client admin-server + admin-client diff --git a/pom.xml b/pom.xml index 3a4b6a1..cf2b699 100644 --- a/pom.xml +++ b/pom.xml @@ -13,7 +13,7 @@ demo-helloworld demo-properties demo-actuator - + demo-admin