您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Spring Boot Admin怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
官網地址
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 就可以實現應用的管理和監控。
注意:版本要和 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>
給啟動類添加一個注解:@EnableAdminServer
@EnableAdminServer @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class ServerApplication { public static void main(String[] args) { SpringApplication.run(ServerApplication.class, args); } }
訪問項目的端口號即可!
例如我配置的端口號是 9000,那么直接訪問 http://localhost:9000/ 即可!
注意:版本要和 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>
編寫 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
啟動項目,然后訪問服務端的 Web 管理界面:
這個 Spring Boot Admin 的管理后臺不用賬號密碼就能直接訪問,一點都不安全,因此要給它加上登錄的功能。
參考 Spring Boot Admin 的官方文檔,我們可以在 Admin-Server 端添加 Spring Security 相關依賴及就可以實現需要登錄后才能訪問網頁管理面板。
官網文檔地址
在服務端添加 Spring Security
依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
編寫 application.yml
文件,編寫用戶名密碼:
server: port: 9000 spring: application: name: Server security: user: name: admin password: admin
編寫 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/**" ); } }
修改客戶端的 application.yml
配置文件,添加用戶名密碼:
這里不添加用戶名和密碼的話,是連不上服務端的:
spring: application: name: Client boot: admin: client: # 配置 Admin Server(服務端的名字) url: http://localhost:9000 # 配置用戶名 username: admin # 配置密碼 password: admin
重啟客戶端和服務端項目
訪問效果為:
感謝各位的閱讀!關于“Spring Boot Admin怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。