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; }}