or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

application-registration.mdclient-configuration.mdcloud-platform-integration.mdindex.mdinstance-configuration.mdmetadata-management.md
tile.json

tessl/maven-de-codecentric--spring-boot-admin-starter-client

Spring Boot starter that auto-configures a client application to register with Spring Boot Admin server for centralized monitoring and management

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/de.codecentric/spring-boot-admin-starter-client@3.4.x

To install, run

npx @tessl/cli install tessl/maven-de-codecentric--spring-boot-admin-starter-client@3.4.0

index.mddocs/

Spring Boot Admin Starter Client

Spring 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.

Package Information

  • Package Name: spring-boot-admin-starter-client
  • Package Type: maven
  • Group ID: de.codecentric
  • Language: Java
  • Installation: Add to your 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'

Core Imports

// 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;

Basic Usage

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=backend

YAML configuration:

spring:
  boot:
    admin:
      client:
        url: http://localhost:8080
        username: admin
        password: secret
        instance:
          name: my-service
          metadata:
            environment: production
            team: backend

Architecture

The starter provides automatic configuration through Spring Boot's auto-configuration mechanism:

  • Auto-Configuration: SpringBootAdminClientAutoConfiguration automatically creates necessary beans
  • Configuration Properties: ClientProperties and InstanceProperties bind application properties
  • Registration Components: Handle automatic registration and deregistration with the admin server
  • Metadata Contributors: Collect and contribute application metadata
  • HTTP Client Support: Works with both servlet (RestTemplate) and reactive (WebClient) stacks

Capabilities

Client Configuration

Configure 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);
}

Client Configuration

Instance Configuration

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);
}

Instance Configuration

Application Registration

Programmatic control over application registration and deregistration with the admin server.

public interface ApplicationRegistrator {
    boolean register();
    void deregister();
    String getRegisteredId();
}

Application Registration

Metadata Management

Extend application metadata through custom contributors and built-in metadata sources.

@FunctionalInterface
public interface MetadataContributor {
    Map<String, String> getMetadata();
}

Metadata Management

Cloud Platform Integration

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
}

Cloud Platform Integration

Common Types

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();
    }
}