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

auto-configuration.mddocs/

Auto-Configuration

The Druid Spring Boot Starter provides automatic configuration for Druid DataSource integration through Spring Boot's auto-configuration mechanism.

Capabilities

DruidDataSourceAutoConfigure

Main auto-configuration class that conditionally creates and configures Druid DataSource beans when appropriate conditions are met.

/**
 * Auto-configuration for Druid DataSource integration
 * Conditionally creates DruidDataSourceWrapper when:
 * - spring.datasource.type is set to DruidDataSource or not specified
 * - DruidDataSource class is available on classpath  
 * - No existing DataSource beans are present
 */
@Configuration
@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true)
@ConditionalOnClass(DruidDataSource.class)
@AutoConfigureBefore(DataSourceAutoConfiguration.class)
@EnableConfigurationProperties({DruidStatProperties.class, DataSourceProperties.class})
@Import({DruidSpringAopConfiguration.class, DruidStatViewServletConfiguration.class, DruidWebStatFilterConfiguration.class, DruidFilterConfiguration.class})
public class DruidDataSourceAutoConfigure {
    
    /**
     * Creates the primary DruidDataSourceWrapper bean when no other DataSource beans exist
     * @return DruidDataSourceWrapper configured with Spring Boot properties
     */
    @Bean
    @ConditionalOnMissingBean({DruidDataSourceWrapper.class, DruidDataSource.class, DataSource.class})
    public DruidDataSourceWrapper dataSource();
}

Key Features:

  • Conditional Activation: Only activates when spring.datasource.type is set to Druid or not specified
  • Class Path Detection: Requires DruidDataSource class to be available
  • Bean Conflict Prevention: Won't create DataSource if one already exists
  • Property Integration: Automatically binds DruidStatProperties and DataSourceProperties
  • Component Import: Imports all related configuration classes for monitoring, AOP, and filters

Usage Example:

The auto-configuration activates automatically when you add the starter dependency. To ensure it activates, either:

  1. Don't specify spring.datasource.type (it will default to Druid)
  2. Explicitly set it:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

Configuration Properties Integration

The auto-configuration enables two main property classes:

/**
 * Standard Spring Boot DataSource properties
 * Used as fallback when Druid-specific properties are not set
 */
@EnableConfigurationProperties(DataSourceProperties.class)

/**
 * Druid-specific configuration properties  
 * Takes precedence over standard DataSource properties
 */
@EnableConfigurationProperties(DruidStatProperties.class)

Component Import Strategy

The auto-configuration uses @Import to conditionally include related configuration:

@Import({
    DruidSpringAopConfiguration.class,      // AOP monitoring integration
    DruidStatViewServletConfiguration.class, // Web monitoring console
    DruidWebStatFilterConfiguration.class,   // Web statistics filter
    DruidFilterConfiguration.class          // Various Druid filters
})

Each imported configuration class has its own conditional logic, so they only activate when their specific conditions are met.

Auto-Configuration Ordering

The configuration is explicitly ordered to run before Spring Boot's default DataSource auto-configuration:

@AutoConfigureBefore(DataSourceAutoConfiguration.class)

This ensures that if Druid conditions are met, the Druid DataSource will be created instead of Spring Boot's default DataSource.

Conditional Logic Summary

The auto-configuration will create a DruidDataSourceWrapper bean when ALL of the following conditions are true:

  1. Property Condition: spring.datasource.type is either unset or set to com.alibaba.druid.pool.DruidDataSource
  2. Class Condition: DruidDataSource.class is available on the classpath
  3. Bean Condition: No existing beans of type DruidDataSourceWrapper, DruidDataSource, or DataSource are present

Configuration Override:

If you need to disable the auto-configuration entirely, you can exclude it:

@SpringBootApplication(exclude = DruidDataSourceAutoConfigure.class)
public class Application {
    // ...
}

Or in application.properties:

spring.autoconfigure.exclude=com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure

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