中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot Admin怎么用

發布時間:2022-03-04 11:51:17 來源:億速云 閱讀:214 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關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 Boot 2.3.7.RELEASE,那么 Spring Boot Admin 對應的版本就是 2.3.x。

    <!-- Spring Boot Admin 服務端依賴 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>2.3.1</version>
    </dependency>

    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 測試結果

    Spring Boot Admin怎么用

    3、客戶端搭建

    3.1 引入依賴

    注意:版本要和 Spring Boot 版本對應,例如我的 Spring Boot 2.3.7.RELEASE,那么 Spring Boot Admin 對應的版本就是 2.3.x。

    <!-- Spring Boot Admin 客戶端依賴 -->
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.3.1</version>
    </dependency>

    3.2 編寫配置

    編寫 application.yml 文件:

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

    3.3 進行測試

    啟動項目,然后訪問服務端的 Web 管理界面:

    Spring Boot Admin怎么用

    Spring Boot Admin怎么用

    4、安全性

    這個 Spring Boot Admin 的管理后臺不用賬號密碼就能直接訪問,一點都不安全,因此要給它加上登錄的功能。

    參考 Spring Boot Admin 的官方文檔,我們可以在 Admin-Server 端添加 Spring Security 相關依賴及就可以實現需要登錄后才能訪問網頁管理面板。

    官網文檔地址

    4.1 添加依賴

    在服務端添加 Spring Security 依賴:

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

    4.2 編寫配置

    編寫 application.yml 文件,編寫用戶名密碼:

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

    4.3 編寫配置類

    編寫 Spring Security 的配置類:

    @Configuration
    public 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怎么用

    Spring Boot Admin怎么用

    感謝各位的閱讀!關于“Spring Boot Admin怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    铁岭市| 宁阳县| 上思县| 北京市| 铁岭县| 迁安市| 林周县| 古丈县| 化德县| 西安市| 遂川县| 瑞金市| 文化| 丽水市| 曲靖市| 卫辉市| 赤水市| 翁牛特旗| 资源县| 德令哈市| 瓦房店市| 乐昌市| 乡城县| 嘉义县| 定兴县| 建德市| 张家港市| 桓台县| 虎林市| 沛县| 乌拉特后旗| 鱼台县| 邓州市| 泗洪县| 会宁县| 玛纳斯县| 道孚县| 安福县| 青龙| 镇远县| 缙云县|