Spring Boot starter that auto-configures a client application to register with Spring Boot Admin server for centralized monitoring and management
npx @tessl/cli install tessl/maven-de-codecentric--spring-boot-admin-starter-client@3.4.0Spring Boot Admin Starter Client is a Spring Boot starter that automatically configures a client application to register with a Spring Boot Admin server for centralized monitoring and management. It provides seamless integration with Spring Boot's actuator infrastructure and enables automatic discovery, registration, and health monitoring of applications in microservice architectures.
pom.xml:<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>3.4.1</version>
</dependency>For Gradle:
implementation 'de.codecentric:spring-boot-admin-starter-client:3.4.1'// Auto-configuration classes (typically not imported directly)
import de.codecentric.boot.admin.client.config.SpringBootAdminClientAutoConfiguration;
import de.codecentric.boot.admin.client.config.ClientProperties;
import de.codecentric.boot.admin.client.config.InstanceProperties;
// Programmatic registration (advanced use cases)
import de.codecentric.boot.admin.client.registration.ApplicationRegistrator;
import de.codecentric.boot.admin.client.registration.Application;The starter automatically configures the client when added to a Spring Boot application. Configuration is done through application.properties or application.yml:
# Basic configuration
spring.boot.admin.client.url=http://localhost:8080
spring.boot.admin.client.instance.name=my-service
# Optional: Authentication
spring.boot.admin.client.username=admin
spring.boot.admin.client.password=secret
# Optional: Custom metadata
spring.boot.admin.client.instance.metadata.environment=production
spring.boot.admin.client.instance.metadata.team=backendYAML configuration:
spring:
boot:
admin:
client:
url: http://localhost:8080
username: admin
password: secret
instance:
name: my-service
metadata:
environment: production
team: backendThe starter provides automatic configuration through Spring Boot's auto-configuration mechanism:
SpringBootAdminClientAutoConfiguration automatically creates necessary beansClientProperties and InstanceProperties bind application propertiesConfigure connection settings, authentication, and registration behavior for the admin client.
@ConfigurationProperties("spring.boot.admin.client")
public class ClientProperties {
public String[] getUrl();
public void setUrl(String[] url);
public Duration getPeriod();
public void setPeriod(Duration period);
public String getUsername();
public void setUsername(String username);
public String getPassword();
public void setPassword(String password);
public boolean isAutoRegistration();
public void setAutoRegistration(boolean autoRegistration);
public boolean isAutoDeregistration(Environment environment);
public void setAutoDeregistration(Boolean autoDeregistration);
public boolean isEnabled();
public void setEnabled(boolean enabled);
}Configure instance-specific properties like service URLs, metadata, and discovery settings.
@ConfigurationProperties("spring.boot.admin.client.instance")
public class InstanceProperties {
public String getName();
public void setName(String name);
public String getServiceUrl();
public void setServiceUrl(String serviceUrl);
public String getManagementUrl();
public void setManagementUrl(String managementUrl);
public String getHealthUrl();
public void setHealthUrl(String healthUrl);
public Map<String, String> getMetadata();
public void setMetadata(Map<String, String> metadata);
public ServiceHostType getServiceHostType();
public void setServiceHostType(ServiceHostType serviceHostType);
}Programmatic control over application registration and deregistration with the admin server.
public interface ApplicationRegistrator {
boolean register();
void deregister();
String getRegisteredId();
}Extend application metadata through custom contributors and built-in metadata sources.
@FunctionalInterface
public interface MetadataContributor {
Map<String, String> getMetadata();
}Special configuration and auto-detection for Cloud Foundry and other cloud platforms.
@ConfigurationProperties("spring.boot.admin.client.instance.metadata")
public class CloudFoundryApplicationProperties {
// Cloud Foundry specific properties
}public enum ServiceHostType {
IP, HOST_NAME, CANONICAL_HOST_NAME
}
public class Application {
public static Builder create(String name);
public String getName();
public String getManagementUrl();
public String getHealthUrl();
public String getServiceUrl();
public Map<String, String> getMetadata();
public static class Builder {
public Builder name(String name);
public Builder managementUrl(String managementUrl);
public Builder healthUrl(String healthUrl);
public Builder serviceUrl(String serviceUrl);
public Builder metadata(String key, String value);
public Application build();
}
}