CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/maven-com-alibaba--druid-spring-boot-starter

Spring Boot starter that provides auto-configuration and integration support for Alibaba Druid database connection pool and monitoring system.

Pending
Overview
Eval results
Files

configuration-properties.mddocs/

Configuration Properties

The Druid Spring Boot Starter provides comprehensive type-safe configuration properties for all Druid settings including connection pool parameters, monitoring options, and filter configurations.

Capabilities

DruidStatProperties

Main configuration properties class that provides type-safe binding for Druid monitoring and statistics configuration.

/**
 * Main configuration properties for Druid monitoring and statistics
 * Bound to spring.datasource.druid configuration prefix
 */
@ConfigurationProperties("spring.datasource.druid")
public class DruidStatProperties {
    
    /**
     * AOP patterns for Spring method monitoring
     * @return Array of patterns for AOP pointcut matching
     */
    String[] getAopPatterns();
    
    /**
     * Sets AOP patterns for Spring method monitoring
     * @param aopPatterns Array of patterns (e.g., "com.example.service.*", "com.example.dao.*")
     */
    void setAopPatterns(String[] aopPatterns);
    
    /**
     * Gets StatViewServlet configuration
     * @return StatViewServlet configuration object
     */
    StatViewServlet getStatViewServlet();
    
    /**
     * Sets StatViewServlet configuration
     * @param statViewServlet Configuration for web monitoring console
     */
    void setStatViewServlet(StatViewServlet statViewServlet);
    
    /**
     * Gets WebStatFilter configuration  
     * @return WebStatFilter configuration object
     */
    WebStatFilter getWebStatFilter();
    
    /**
     * Sets WebStatFilter configuration
     * @param webStatFilter Configuration for web statistics filter
     */
    void setWebStatFilter(WebStatFilter webStatFilter);
}

StatViewServlet Configuration

Nested configuration class for the Druid monitoring web console.

/**
 * Configuration for Druid's web-based monitoring console
 * Bound to spring.datasource.druid.stat-view-servlet configuration prefix
 */
public static class StatViewServlet {
    
    /**
     * Whether StatViewServlet is enabled
     * @return true if monitoring console is enabled, false by default for security
     */
    boolean isEnabled();
    
    /**
     * Enables or disables the StatViewServlet
     * @param enabled true to enable monitoring console (requires security configuration)
     */
    void setEnabled(boolean enabled);
    
    /**
     * URL pattern for the monitoring servlet
     * @return URL pattern (default: "/druid/*")
     */
    String getUrlPattern();
    
    /**
     * Sets URL pattern for monitoring servlet access
     * @param urlPattern URL pattern (e.g., "/druid/*", "/monitor/*") 
     */
    void setUrlPattern(String urlPattern);
    
    /**
     * IP whitelist for monitoring console access
     * @return Comma-separated list of allowed IP addresses
     */
    String getAllow();
    
    /**
     * Sets IP whitelist for security
     * @param allow Comma-separated IPs (e.g., "127.0.0.1,192.168.1.100")
     */
    void setAllow(String allow);
    
    /**
     * IP blacklist for monitoring console access
     * @return Comma-separated list of denied IP addresses  
     */
    String getDeny();
    
    /**
     * Sets IP blacklist for security
     * @param deny Comma-separated IPs to block
     */
    void setDeny(String deny);
    
    /**
     * Login username for monitoring console
     * @return Username for console authentication
     */
    String getLoginUsername();
    
    /**
     * Sets login username for console access
     * @param loginUsername Username for authentication
     */
    void setLoginUsername(String loginUsername);
    
    /**
     * Login password for monitoring console
     * @return Password for console authentication
     */
    String getLoginPassword();
    
    /**
     * Sets login password for console access
     * @param loginPassword Password for authentication
     */
    void setLoginPassword(String loginPassword);
    
    /**
     * Whether reset functionality is enabled in console
     * @return "true" or "false" string value
     */
    String getResetEnable();
    
    /**
     * Enables or disables reset functionality
     * @param resetEnable "true" to enable reset, "false" to disable
     */
    void setResetEnable(String resetEnable);
}

WebStatFilter Configuration

Nested configuration class for web request statistics collection.

/**
 * Configuration for Druid's web statistics filter
 * Bound to spring.datasource.druid.web-stat-filter configuration prefix
 */
public static class WebStatFilter {
    
    /**
     * Whether WebStatFilter is enabled
     * @return true if web statistics collection is enabled, false by default
     */
    boolean isEnabled();
    
    /**
     * Enables or disables web statistics collection
     * @param enabled true to enable web request monitoring
     */
    void setEnabled(boolean enabled);
    
    /**
     * URL pattern for filter application
     * @return URL pattern (default: "/*")
     */
    String getUrlPattern();
    
    /**
     * Sets URL pattern for web statistics collection
     * @param urlPattern Pattern for URLs to monitor (e.g., "/*", "/api/*")
     */
    void setUrlPattern(String urlPattern);
    
    /**
     * URL exclusions from statistics collection
     * @return Comma-separated list of excluded URL patterns
     */
    String getExclusions();
    
    /**
     * Sets URL exclusions to skip monitoring
     * @param exclusions Patterns to exclude (e.g., "*.js,*.css,*.ico,/druid/*")
     */
    void setExclusions(String exclusions);
    
    /**
     * Maximum number of session statistics to track
     * @return String representation of maximum count
     */
    String getSessionStatMaxCount();
    
    /**
     * Sets maximum session statistics count
     * @param sessionStatMaxCount Maximum number of sessions to track
     */
    void setSessionStatMaxCount(String sessionStatMaxCount);
    
    /**
     * Whether session statistics are enabled
     * @return "true" or "false" string value
     */
    String getSessionStatEnable();
    
    /**
     * Enables or disables session statistics
     * @param sessionStatEnable "true" to enable session monitoring
     */
    void setSessionStatEnable(String sessionStatEnable);
    
    /**
     * Principal session name for user tracking
     * @return Session attribute name for principal identification
     */
    String getPrincipalSessionName();
    
    /**
     * Sets principal session name for user identification
     * @param principalSessionName Session attribute name (e.g., "user", "principal")
     */
    void setPrincipalSessionName(String principalSessionName);
    
    /**
     * Principal cookie name for user tracking
     * @return Cookie name for principal identification
     */
    String getPrincipalCookieName();
    
    /**
     * Sets principal cookie name for user identification
     * @param principalCookieName Cookie name for user tracking
     */
    void setPrincipalCookieName(String principalCookieName);
    
    /**
     * Whether request profiling is enabled
     * @return "true" or "false" string value
     */
    String getProfileEnable();
    
    /**
     * Enables or disables request profiling
     * @param profileEnable "true" to enable detailed request profiling
     */
    void setProfileEnable(String profileEnable);
}

Configuration Examples

Basic Monitoring Configuration

# Enable StatViewServlet (monitoring console)
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=admin123
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1,192.168.1.100
spring.datasource.druid.stat-view-servlet.reset-enable=false

# Enable WebStatFilter (web request monitoring)
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.web-stat-filter.url-pattern=/*
spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*
spring.datasource.druid.web-stat-filter.session-stat-enable=true
spring.datasource.druid.web-stat-filter.session-stat-max-count=1000

AOP Monitoring Configuration

# Enable AOP method monitoring
spring.datasource.druid.aop-patterns=com.example.service.*,com.example.dao.*,com.example.controller.*

YAML Configuration Example

spring:
  datasource:
    druid:
      # StatViewServlet configuration
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        login-username: admin
        login-password: secure123
        allow: 127.0.0.1,10.0.0.0/8
        deny: 192.168.0.100
        reset-enable: false
      
      # WebStatFilter configuration  
      web-stat-filter:
        enabled: true
        url-pattern: /*
        exclusions: "*.js,*.css,*.ico,/druid/*,/static/*"
        session-stat-enable: true
        session-stat-max-count: 2000
        principal-session-name: user
        profile-enable: true
      
      # AOP monitoring patterns
      aop-patterns: 
        - com.example.service.*
        - com.example.dao.*
        - com.example.controller.*

Property Binding Integration

The configuration properties integrate with Spring Boot's configuration property binding system:

Type Safety

All properties are strongly typed, providing compile-time checking and IDE autocomplete support.

Validation

Spring Boot automatically validates property values and provides meaningful error messages for invalid configurations.

Environment Integration

Properties can be set via:

  • application.properties or application.yml files
  • Environment variables (e.g., SPRING_DATASOURCE_DRUID_STAT_VIEW_SERVLET_ENABLED=true)
  • Command line arguments (e.g., --spring.datasource.druid.stat-view-servlet.enabled=true)
  • External configuration sources

Profile Support

Configuration can be profile-specific:

spring:
  profiles: development
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        login-username: dev
        login-password: dev123

---
spring:
  profiles: production  
  datasource:
    druid:
      stat-view-servlet:
        enabled: true
        login-username: admin
        login-password: ${DRUID_ADMIN_PASSWORD}
        allow: 10.0.0.0/8

Security Considerations

StatViewServlet Security

  • Disabled by Default: StatViewServlet is disabled by default for security
  • Authentication: Always set login username/password in production
  • IP Filtering: Use allow and deny properties to restrict access
  • Reset Protection: Disable reset functionality in production environments

WebStatFilter Privacy

  • URL Exclusions: Exclude sensitive endpoints from monitoring
  • Session Tracking: Be mindful of privacy when enabling session statistics
  • Data Retention: Configure appropriate limits for statistics storage

Install with Tessl CLI

npx tessl i tessl/maven-com-alibaba--druid-spring-boot-starter

docs

auto-configuration.md

configuration-properties.md

datasource-management.md

filter-configuration.md

index.md

monitoring-integration.md

tile.json