All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.trang.druid.autoconfigure.properties.DruidDataSourceProperties Maven / Gradle / Ivy

package com.github.trang.druid.autoconfigure.properties;

import static com.github.trang.druid.autoconfigure.properties.DruidConstants.DRUID_DATA_SOURCE_PREFIX;

import java.util.HashMap;
import java.util.Map;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.NestedConfigurationProperty;

import com.alibaba.druid.pool.DruidDataSource;

import lombok.Getter;
import lombok.Setter;

/**
 * Druid 自定义配置
 *
 * @author trang
 */
@ConfigurationProperties(prefix = DRUID_DATA_SOURCE_PREFIX)
@Getter
@Setter
public class DruidDataSourceProperties {

    /** druid 数据源 */
    Map dataSources = new HashMap<>();

    /** druid encoding-filter 配置 */
    @NestedConfigurationProperty
    DruidEncodingFilterProperties encoding = new DruidEncodingFilterProperties();

    /** druid config-filter 配置 */
    @NestedConfigurationProperty
    DruidConfigFilterProperties config = new DruidConfigFilterProperties();

    /** druid stat-view-servlet 配置 */
    @NestedConfigurationProperty
    DruidStatViewServletProperties statViewServlet = new DruidStatViewServletProperties();

    /** druid web-stat 配置 */
    @NestedConfigurationProperty
    DruidWebStatProperties webStat = new DruidWebStatProperties();

    /** druid aop-stat 配置 */
    @NestedConfigurationProperty
    DruidAopStatProperties aopStat = new DruidAopStatProperties();

    @Getter
    @Setter
    public static class DruidEncodingFilterProperties {
        /** 是否开启 druid encoding-filter,默认否 */
        private boolean enabled;
        /** 客户端编码 */
        private String clientEncoding;
        /** 服务端编码 */
        private String serverEncoding;
    }

    @Getter
    @Setter
    public static class DruidConfigFilterProperties {
        /** 是否开启 druid config-filter,默认否 */
        private boolean enabled;
        /** 密钥地址 */
        private String file;
        /** 加密密钥 */
        private String key;
    }

    @Getter
    @Setter
    public static class DruidStatViewServletProperties {
        /** 是否开启 druid 的数据统计页面,默认否 */
        private boolean enabled;
        /** servlet 的映射规则,默认访问 "http:/**xxx/druid/" */
        private String urlMappings = "/druid/*";
        /** druid 统计页面的登陆用户名 */
        private String loginUsername;
        /** druid 统计页面的登陆密码 */
        private String loginPassword;
        /** druid 统计页面的访问白名单,默认允许所有人访问 */
        private String allow;
        /** druid 统计页面的访问黑名单,优先于白名单 */
        private String deny;
        /** 是否允许清空统计数据,默认否 */
        private boolean resetEnable;
    }

    @Getter
    @Setter
    public static class DruidWebStatProperties {
        /** 是否开启 web-jdbc 监控,默认否 */
        private boolean enabled;
        /** 过滤器 url 的映射规则 */
        private String urlPatterns = "/*";
        /** 过滤器 url 的排除规则 */
        private String exclusions = "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*";
        /** 是否开启 session 统计,默认否 */
        private boolean sessionStatEnable;
        /** session 统计的最大值,默认值 1000 */
        private Integer sessionStatMaxCount = 1000;
        /** 配置当前 session 的用户 */
        private String principalSessionName;
        /** 配置当前 cookie 的用户 */
        private String principalCookieName;
        /** 是否开启监控单个 url 调用的 sql 列表,默认是 */
        private boolean profileEnable = true;
    }

    @Getter
    @Setter
    public static class DruidAopStatProperties {
        /** 是否开启基于 aop 的监控,默认否 */
        private boolean enabled;
        /** aop 拦截规则 */
        private String[] patterns;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy