Spring Boot 技术探索

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run".

37、Spring Boot Admin入门

平台环境:

名称

版本号

Mac OS X

10.15.2

JDK

1.8.0_201

Apache Maven

3.6.0

IntelliJ IDEA

2019.3 (Ultimate Edition)

Spring Boot

2.2.2.RELEASE

 

  什么是Spring Boot Admin?

  Spring Boot Admin是一个用于管理Spring Boot应用程序的UI,通过对Spring Boot Actuator接口的调用与封装,以图形界面形式清晰地展示出Spring Boot应用的内存信息、JVM等各种信息。注意,Spring Boot Admin 并不是Spring Boot官方发布的开源软件。

  Spring Boot Admin分为服务端和客户端,需要分别动手搭建。

 

  这次搭建采用在同一个maven工程下,新建两个子maven工程的形式。分别为服务端与客户端。

 

新建主工程

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.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>springBootDemo37</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <modules>
        <module>admin_Server</module>
    </modules>
    <description>Demo project for Spring Boot</description>


    <properties>
        <java.version>1.8</java.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>


    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>


</project>

 

要注意主工程pom.xml文件中的这一部分配置,这些配置信息将用于子工程中。

    <groupId>com.example</groupId>
    <artifactId>springBootDemo37</artifactId>
    <version>0.0.1-SNAPSHOT</version>

 

还需要注意手工建立modules配置项,用来指明主工程与子工程的关系。

    <modules>
        <module>admin_Server</module>
    </modules>

 

修改完主工程的pom.xml文件后,接下来把主工程的src文件夹删除。

 

Spring Boot Admin服务端

保持主工程在IDEA中的打开状态,选择File—>New—>Module…,在打开的界面中选择好依赖项Admin Server与Spring Web,并一路到最后点击Finish。

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>com.example</groupId>
        <artifactId>springBootDemo37</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <artifactId>admin_Server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>


    <properties>
        <java.version>1.8</java.version>
        <spring-boot-admin.version>2.2.1</spring-boot-admin.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-dependencies</artifactId>
                <version>${spring-boot-admin.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>

 

注意,子工程的pom.xml中的parent标签项的内容要改成与主工程中pom.xml的配置信息一致。

<parent>
    <groupId>com.example</groupId>
    <artifactId>springBootDemo37</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

 

修改子工程的pom.xml中的artifactId标签项的值

<artifactId>admin_Server</artifactId>

 

为了避免端口冲突,修改端口号

application.properties

server.port=8000

 

启动类中,增加启用admin功能的注解@EnableAdminServer。

package com.example.demo;


import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@EnableAdminServer
@SpringBootApplication
public class DemoApplication
{
    public static void main(String[] args)
    {
        SpringApplication.run(DemoApplication.class, args);
    }
}

到此,Spring Boot Admin服务端配置完成。

接下来测试下,点击启动类DemoApplication名称旁边的三角图标,选择Run ‘DemoApplication’。

 

启动成功后,打开浏览器访问http://127.0.0.1:8000/

因为还没有建立客户端,所以显示0应用、0个实例。

 

Spring Boot Admin客户端

保持主工程在IDEA中的打开状态,选择File—>New—>Module…,在打开的界面中选择好依赖项Admin Client与Spring Web,并一路到最后点击Finish。

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>com.example</groupId>
        <artifactId>springBootDemo37</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <artifactId>admin_Client</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>


    <properties>
        <java.version>1.8</java.version>
        <spring-boot-admin.version>2.2.1</spring-boot-admin.version>
    </properties>


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
        </dependency>


        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>


    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-dependencies</artifactId>
                <version>${spring-boot-admin.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>

 

注意,子工程的pom.xml中的parent标签项的内容要改成与主工程中pom.xml的配置信息一致。

<parent>
    <groupId>com.example</groupId>
    <artifactId>springBootDemo37</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

 

修改子工程的pom.xml中的artifactId标签项的值

<artifactId>admin_Client</artifactId>

 

为了避免端口冲突,修改端口号。以及注册到服务端的地址。

application.properties

server.port=8001


# 此工程的名称
spring.application.name=Admin Client


# 注册到Admin Server的地址
spring.boot.admin.client.url=http://localhost:8000


# 打开允许客户端监控的Actuator端点,*表示全部。
management.endpoints.web.exposure.include=*

 

 

Bootstrap Thumbnail Second
MySQL

MySQL is the world's most popular open source database.

GO

Bootstrap Thumbnail Third
算法基础

本书介绍了什么是计算机算法,如何描述它们,以及如何来评估它们。

GO