Spring Boot starter that provides auto-configuration and integration support for Alibaba Druid database connection pool and monitoring system.
—
The Druid Spring Boot Starter provides comprehensive type-safe configuration properties for all Druid settings including connection pool parameters, monitoring options, and filter configurations.
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);
}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);
}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);
}# 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# Enable AOP method monitoring
spring.datasource.druid.aop-patterns=com.example.service.*,com.example.dao.*,com.example.controller.*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.*The configuration properties integrate with Spring Boot's configuration property binding system:
All properties are strongly typed, providing compile-time checking and IDE autocomplete support.
Spring Boot automatically validates property values and provides meaningful error messages for invalid configurations.
Properties can be set via:
application.properties or application.yml filesSPRING_DATASOURCE_DRUID_STAT_VIEW_SERVLET_ENABLED=true)--spring.datasource.druid.stat-view-servlet.enabled=true)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/8allow and deny properties to restrict accessInstall with Tessl CLI
npx tessl i tessl/maven-com-alibaba--druid-spring-boot-starter