热门IT资讯网

spring boot 配置druid

发表于:2024-11-24 作者:热门IT资讯网编辑
编辑最后更新 2024年11月24日,application.yamlspring: main: banner-mode: console datasource: type: com.alibaba.druid.pool.

application.yaml

spring:  main:    banner-mode: console  datasource:    type: com.alibaba.druid.pool.DruidDataSource    url: jdbc:mysql://localhost:3306/test    username: test    password: 123456#    driver-class-name: com.mysql.jdbc.Driver#    druid pool customize configuration    driverClassName: com.mysql.jdbc.Driver    initialSize: 10    minIdle: 5    maxActive: 20    maxWait: 60000    timeBetweenEvictionRunsMillis: 60000    minEvictableIdleTimeMillis: 300000    validationQuery: select 1 from dual    testWhileIdle: true    testOnBorrow: false    testOnReturn: false    removeAbandoned: true    removeAbandonedTimeout: 1800    logAbandoned: true    filters: stat,wall,slf4j    logSlowSql: true    loginUsername: test    loginPassword: 123456          jdbc:    template:      max-rows: 1000      query-timeout: 1200  jpa:    hibernate:      naming:        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpllogging:  level:    root: debug

DruidConfiguration

@Component@ConfigurationProperties(prefix = "spring.datasource")public class DruidConfiguration {    private String url;    private String username;    private String password;    private String driverClassName;    private int initialSize;    private int minIdle;    private int maxActive;    private int maxWait;    private int timeBetweenEvictionRunsMillis;    private int minEvictableIdleTimeMillis;    private String validationQuery;    private boolean testWhileIdle;    private boolean testOnBorrow;    private boolean testOnReturn;    private boolean removeAbandoned;    private int removeAbandonedTimeout;    private boolean logAbandoned;    private String filters;    private boolean logSlowSql;    private String loginUsername;    private String loginPassword;}

@Configuration配置

@Configurationpublic class CustomizeConfig {    private final static Logger LOGGER = LoggerFactory.getLogger(CustomizeConfig.class);    @Autowired    private DruidConfiguration druidConfiguration;        @Bean    public DataSource druidDataSource(){        DruidDataSource datasource = new DruidDataSource();        datasource.setUrl(druidConfiguration.getUrl());        datasource.setUsername(druidConfiguration.getUsername());        datasource.setPassword(druidConfiguration.getPassword());        datasource.setDriverClassName(druidConfiguration.getDriverClassName());        datasource.setInitialSize(druidConfiguration.getInitialSize());        datasource.setMinIdle(druidConfiguration.getMinIdle());                datasource.setMaxActive(druidConfiguration.getMaxActive());        datasource.setMaxWait(druidConfiguration.getMaxWait());        datasource.setTimeBetweenEvictionRunsMillis(druidConfiguration.getTimeBetweenEvictionRunsMillis());        datasource.setMinEvictableIdleTimeMillis(druidConfiguration.getMinEvictableIdleTimeMillis());        datasource.setValidationQuery(druidConfiguration.getValidationQuery());        datasource.setTestWhileIdle(druidConfiguration.isTestWhileIdle());        datasource.setTestOnBorrow(druidConfiguration.isTestOnBorrow());        datasource.setTestOnReturn(druidConfiguration.isTestOnReturn());        datasource.setRemoveAbandoned(druidConfiguration.isRemoveAbandoned());        datasource.setRemoveAbandonedTimeout(druidConfiguration.getRemoveAbandonedTimeout());        datasource.setLogAbandoned(druidConfiguration.isLogAbandoned());            try {            datasource.setFilters(druidConfiguration.getFilters());        } catch (SQLException e) {            LOGGER.error("datasource.setFilters occur error.", e);        }        return datasource;    }      @Bean    public ServletRegistrationBean druidServlet() {        ServletRegistrationBean reg = new ServletRegistrationBean();        reg.setServlet(new StatViewServlet());        reg.addUrlMappings("/druid/*");        reg.addInitParameter("loginUsername", druidConfiguration.getLoginUsername());        reg.addInitParameter("loginPassword", druidConfiguration.getLoginPassword());        reg.addInitParameter("logSlowSql", String.valueOf(druidConfiguration.isLogSlowSql()));        return reg;    }    @Bean    public FilterRegistrationBean filterRegistrationBean() {        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();        filterRegistrationBean.setFilter(new WebStatFilter());        filterRegistrationBean.addUrlPatterns("/*");        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");        filterRegistrationBean.addInitParameter("profileEnable", "true");        return filterRegistrationBean;    }}
0