Spring Boot Admin 在 Spring Boot Actuator 的基础上提供简洁的可视化 WEB UI,是用来管理 Spring Boot 应用程序的一个简单的界面,提供的功能参考:Spring Boot Admin Github
在本文中,我们将介绍配置 Spring Boot Admin(以下简称 SBA)服务端的步骤以及如何将一个 Spring Boot 应用注册为它的客户端。
环境依赖
-
JDK >= 1.8
-
Gradle 4.10.2
-
Spring Boot Admin 2.1.0
快速上手
首先我们需要创建一个 SBA 的服务端。
服务端
1、创建一个简单的 Spring Boot 应用程序并添加以下依赖
dependencies {
implementation 'de.codecentric:spring-boot-admin-starter-server:2.1.0'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
2、然后我们就可以将 @EnableAdminServer
添加到我们的主类中
@SpringBootApplication
@EnableAdminServer
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
}
}
3、安全配置:
@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
private final String adminContextPath;
public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
this.adminContextPath = adminServerProperties.getContextPath();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setTargetUrlParameter("redirectTo");
successHandler.setDefaultTargetUrl(adminContextPath + "/");
http.authorizeRequests()
.antMatchers(adminContextPath + "/assets/**").permitAll()
.antMatchers(adminContextPath + "/login").permitAll()
.anyRequest().authenticated()
.and()
.formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
.logout().logoutUrl(adminContextPath + "/logout").and()
.httpBasic().and()
.csrf()
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.ignoringAntMatchers(
adminContextPath + "/instances",
adminContextPath + "/actuator/**"
);
// @formatter:on
}
}
4、配置服务端口等信息
spring:
application:
name: admin-server
security:
user:
name: 'admin'
password: 'admin123'
server:
port: 18080
此时,SBA Server 已经好了,直接启动它。
客户端
在建立了我们的服务端之后,我们可以将一个 Spring Boot 应用程序注册为客户端。 注册客户端有两种方式,一种就是通过引入 SBA Client,另外一种是基于 Spring Cloud Discovery。
我们这里介绍通过引入 SBA Client 的方式。
1、首先要引入以下依赖:
dependencies {
implementation 'de.codecentric:spring-boot-admin-starter-client:2.1.0'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-security'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
2、然后在配置文件 application.yml 中配置以下信息
spring:
application:
name: admin-client
boot:
admin:
client:
url: http://localhost:18080
username: 'admin'
password: 'admin123'
server:
port: 8081
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: ALWAYS
现在客户端也就配置好了,启动客户端再次访问 http://localhost:18080 就能看到以下界面:
login:
Instance details:
参考
Spring Boot Admin 2.0 上手
Spring Boot Admin Github
http://codecentric.github.io/spring-boot-admin/2.1.0/#getting-started
「真诚赞赏,手留余香」
请我喝杯咖啡?
使用微信扫描二维码完成支付
