千家信息网

Spring Boot Admin怎么用

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章给大家分享的是有关Spring Boot Admin怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、介绍官网地址Spring Boot Admin 是开源社
千家信息网最后更新 2025年01月16日Spring Boot Admin怎么用

这篇文章给大家分享的是有关Spring Boot Admin怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    1、介绍

    官网地址

    Spring Boot Admin 是开源社区孵化的项目,用于对 Spring Boot 应用的管理和监控。Spring Boot Admin 分为服务端(spring-boot-admin-server)和客户端(spring-boot-admin-client),服务端和客户端之间采用 http 通讯方式实现数据交互;单体项目中需要整合 spring-boot-admin-client 才能让应用被监控。在 SpringCloud 项目中,spring-boot-admin-server 是直接从注册中心抓取应用信息,不需要每个微服务应用整合 spring-boot-admin-client 就可以实现应用的管理和监控。

    2、服务端搭建

    2.1 引入依赖

    注意:版本要和 Spring Boot 版本对应,例如我的 Spring Boot2.3.7.RELEASE,那么 Spring Boot Admin 对应的版本就是 2.3.x。

        de.codecentric    spring-boot-admin-starter-server    2.3.1

    2.2 添加注解

    给启动类添加一个注解:@EnableAdminServer

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

    2.3 进行测试

    访问项目的端口号即可!

    例如我配置的端口号是 9000,那么直接访问 http://localhost:9000/ 即可!

    2.4 测试结果

    3、客户端搭建

    3.1 引入依赖

    注意:版本要和 Spring Boot 版本对应,例如我的 Spring Boot2.3.7.RELEASE,那么 Spring Boot Admin 对应的版本就是 2.3.x。

        de.codecentric    spring-boot-admin-starter-client    2.3.1

    3.2 编写配置

    编写 application.yml 文件:

    spring:  application:    name: Client  boot:    admin:      client:        # 配置 Admin Server(服务端的名字)        url: http://localhost:9000server:  port: 9001 # 开放端点用于 SpringBoot Admin 的监控management:  endpoints:    web:      exposure:        include: '*'logging:  file:    # 配置生成日志文件名称    name: admin-client.log

    3.3 进行测试

    启动项目,然后访问服务端的 Web 管理界面:

    4、安全性

    这个 Spring Boot Admin 的管理后台不用账号密码就能直接访问,一点都不安全,因此要给它加上登录的功能。

    参考 Spring Boot Admin 的官方文档,我们可以在 Admin-Server 端添加 Spring Security 相关依赖及就可以实现需要登录后才能访问网页管理面板。

    官网文档地址

    4.1 添加依赖

    在服务端添加 Spring Security 依赖:

        org.springframework.boot    spring-boot-starter-security

    4.2 编写配置

    编写 application.yml 文件,编写用户名密码:

    server:  port: 9000spring:  application:    name: Server  security:    user:      name: admin      password: admin

    4.3 编写配置类

    编写 Spring Security 的配置类:

    @Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter {    private final String adminContextPath;     public SecurityConfig(AdminServerProperties adminServerProperties) {        this.adminContextPath = adminServerProperties.getContextPath();    }     @Override    protected void configure(HttpSecurity http) throws Exception {        SavedRequestAwareAuthenticationSuccessHandler successHandler = new          SavedRequestAwareAuthenticationSuccessHandler();        successHandler.setTargetUrlParameter("redirectTo");        successHandler.setDefaultTargetUrl(adminContextPath + "/");        http.authorizeRequests()                // 1. 配置所有静态资源和登录页可以公开访问(匿名访问)                .antMatchers(adminContextPath + "/assets/**").permitAll()                .antMatchers(adminContextPath + "/login").permitAll()                .anyRequest().authenticated()                .and()                // 2. 配置登录和登出路径                .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()                .logout().logoutUrl(adminContextPath + "/logout").and()                // 3. 开启 http basic 支持,客户端注册时需要使用                .httpBasic().and()                .csrf()                // 4. 开启基于 Cookie 的 CSRF 保护                .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())                // 5. 忽略这些路径的 CSRF 保护以便客户端注册                .ignoringAntMatchers(                        adminContextPath + "/instances",                        adminContextPath + "/actuator/**"                );    }}

    4.4 修改客户端配置

    修改客户端的 application.yml 配置文件,添加用户名密码:

    这里不添加用户名和密码的话,是连不上服务端的:

    spring:  application:    name: Client  boot:    admin:      client:        # 配置 Admin Server(服务端的名字)        url: http://localhost:9000        # 配置用户名        username: admin        # 配置密码        password: admin

    4.5 进行测试

    重启客户端和服务端项目

    访问效果为:

    感谢各位的阅读!关于"Spring Boot Admin怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

    0