当前位置:   article > 正文

Druid连接池基本配置_pom.xmldruid连接池配置

pom.xmldruid连接池配置
 

以下为Spring Boot配置Druid

一、pom.xml配置

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid</artifactId>
  4. //此版本有bug,部署多个项目到tomcat,会无法启动,报错名字冲突
  5. <!--<version>1.0.18</version>-->
  6. <version>1.0.25</version>
  7. </dependency>
  8. <dependency>
  9. <groupId>mysql</groupId>
  10. <artifactId>mysql-connector-java</artifactId>
  11. </dependency>

二、数据库加密

java –cp druid-1.0.18.jar com.alibaba.druid.filter.config.ConfigTools 你的密码


Paste_Image.png

三、application.properties配置

  1. #数据源
  2. spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
  3. spring.datasource.url= jdbc:mysql://10.105.10.33:3306/blacklist?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
  4. spring.datasource.driverClassName=com.mysql.jdbc.Driver
  5. spring.datasource.username=bigdata
  6. spring.datasource.password=${password}
  7. #数据库密码加密
  8. #java –cp druid-1.0.18.jar com.alibaba.druid.filter.config.ConfigTools 你的密码
  9. privateKey:MIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAnSwp/IIJrOgv06BfLXxFhMUHoM+yK44fQnqV9A8P//WiG2SLD0lbGMkONtdwG6YDeAy/y3vlIZFgB7aDhSG+RwIDAQABAkB1jI1OXBdOaU0z0tK8WyBHP3EIFa5kouPAPZyfLxDBVlABdlnJyDXW6hhiWrkQS7LoH0YAOZ94RTigtBNa5g35AiEA32IvnrWvelOdGiFuDGyh9hcOVS+hFMcOfGRmjmnpzysCIQC0HxZ6SrSVqhS1xFi8k8DqibSPE+D1JOe3uBMq/F1fVQIhAKSpZrrR6ID+Y37gh5Nm/Fg/lJQcoNuFA9uT0rlFv1CzAiEAtAOl2U60MCetTwQOk1kvordBZwU8/IOHucsUDQ/u2YkCIGnkvkhFXbrhNxU0goqxJWVibcbleQf8c/xE8fpnBhpx
  10. publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ0sKfyCCazoL9OgXy18RYTFB6DPsiuOH0J6lfQPD//1ohtkiw9JWxjJDjbXcBumA3gMv8t75SGRYAe2g4UhvkcCAwEAAQ==
  11. password:XLusBJvkC6kQkNWOv9dhR9ZuRijdyUqNxhux65GIpu8A4Br/Fv60g0UwxyLCXXeWo0bT4xVQMdNERUXFApBbDg==
  12. # 下面为连接池的补充设置,应用到上面所有数据源中
  13. # 初始化大小,最小,最大
  14. spring.datasource.initialSize=5
  15. spring.datasource.minIdle=5
  16. spring.datasource.maxActive=20
  17. # 配置获取连接等待超时的时间
  18. spring.datasource.maxWait=60000
  19. # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
  20. spring.datasource.timeBetweenEvictionRunsMillis=60000
  21. # 配置一个连接在池中最小生存的时间,单位是毫秒
  22. spring.datasource.minEvictableIdleTimeMillis=300000
  23. spring.datasource.validationQuery=SELECT 1
  24. spring.datasource.testWhileIdle=true
  25. spring.datasource.testOnBorrow=false
  26. spring.datasource.testOnReturn=false
  27. # 打开PSCache,并且指定每个连接上PSCache的大小
  28. spring.datasource.poolPreparedStatements=true
  29. spring.datasource.maxPoolPreparedStatementPerConnectionSize=20
  30. # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
  31. spring.datasource.filters=stat,wall,log4j,config
  32. # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
  33. spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=true;config.decrypt.key=${publicKey}

config配置类

由于spring boot 1.40目前还不直接支持druid,所以需要手动配置DataSource

  1. package com.xxxx.config;
  2. import java.sql.SQLException;
  3. import javax.sql.DataSource;
  4. import org.springframework.beans.factory.annotation.Value;
  5. import org.springframework.boot.web.servlet.FilterRegistrationBean;
  6. import org.springframework.boot.web.servlet.ServletRegistrationBean;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.Configuration;
  9. import com.alibaba.druid.pool.DruidDataSource;
  10. import com.alibaba.druid.support.http.StatViewServlet;
  11. import com.alibaba.druid.support.http.WebStatFilter;
  12. /**
  13. * Druid监控web配置
  14. *
  15. * @author jinxiaoxin
  16. *
  17. */
  18. @Configuration
  19. public class DruidConfig {
  20. @Bean
  21. public ServletRegistrationBean druidServlet() {
  22. ServletRegistrationBean reg = new ServletRegistrationBean();
  23. reg.setServlet(new StatViewServlet());
  24. // 登录URL http://localhost:8080/d/login.html
  25. reg.addUrlMappings("/druid/*");
  26. // 设置白名单
  27. reg.addInitParameter("allow", "10.105.0.220");
  28. // 设置黑名单
  29. reg.addInitParameter("deny", "");
  30. // 设置登录查看信息的账号密码.
  31. reg.addInitParameter("loginUsername", "admin");
  32. reg.addInitParameter("loginPassword", "admin");
  33. return reg;
  34. }
  35. @Bean
  36. public FilterRegistrationBean filterRegistrationBean() {
  37. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
  38. filterRegistrationBean.setFilter(new WebStatFilter());
  39. filterRegistrationBean.addUrlPatterns("/*");
  40. filterRegistrationBean.addInitParameter("exclusions",
  41. "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
  42. return filterRegistrationBean;
  43. }
  44. @Bean
  45. public DataSource druidDataSource(
  46. @Value("${spring.datasource.driverClassName}") String driver,
  47. @Value("${spring.datasource.url}") String url,
  48. @Value("${spring.datasource.username}") String username,
  49. @Value("${spring.datasource.password}") String password,
  50. @Value("${publicKey}") String publicKey,
  51. @Value("${spring.datasource.initialSize}") int initialSize,
  52. @Value("${spring.datasource.minIdle}") int minIdle,
  53. @Value("${spring.datasource.maxActive}") int maxActive,
  54. @Value("${spring.datasource.maxWait}") long maxWait,
  55. @Value("${spring.datasource.timeBetweenEvictionRunsMillis}") long timeBetweenEvictionRunsMillis,
  56. @Value("${spring.datasource.minEvictableIdleTimeMillis}") long minEvictableIdleTimeMillis,
  57. @Value("${spring.datasource.validationQuery}") String validationQuery,
  58. @Value("${spring.datasource.testWhileIdle}") boolean testWhileIdle,
  59. @Value("${spring.datasource.testOnBorrow}") boolean testOnBorrow,
  60. @Value("${spring.datasource.testOnReturn}") boolean testOnReturn,
  61. @Value("${spring.datasource.poolPreparedStatements}") boolean poolPreparedStatements,
  62. @Value("${spring.datasource.maxPoolPreparedStatementPerConnectionSize}") int maxPoolPreparedStatementPerConnectionSize,
  63. @Value("${spring.datasource.filters}") String filters,
  64. @Value("${spring.datasource.connectionProperties}") String connectionProperties) {
  65. DruidDataSource druidDataSource = new DruidDataSource();
  66. druidDataSource.setDriverClassName(driver);
  67. druidDataSource.setUrl(url);
  68. druidDataSource.setUsername(username);
  69. druidDataSource.setPassword(password);
  70. druidDataSource.setInitialSize(initialSize);
  71. druidDataSource.setMaxActive(maxActive);
  72. druidDataSource.setMaxWait(maxWait);
  73. druidDataSource
  74. .setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
  75. druidDataSource
  76. .setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
  77. druidDataSource.setValidationQuery(validationQuery);
  78. druidDataSource.setTestWhileIdle(testWhileIdle);
  79. druidDataSource.setTestOnBorrow(testOnBorrow);
  80. druidDataSource.setTestOnReturn(testOnReturn);
  81. druidDataSource.setPoolPreparedStatements(poolPreparedStatements);
  82. druidDataSource
  83. .setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
  84. druidDataSource.setConnectionProperties(connectionProperties);
  85. try {
  86. druidDataSource.setFilters(filters);
  87. } catch (SQLException e) {
  88. e.printStackTrace();
  89. }
  90. return druidDataSource;
  91. }
  92. }

四、application配置

加上@ComponentScan注解

  1. package com.xxxx;
  2. import org.springframework.boot.SpringApplication;
  3. import org.springframework.boot.autoconfigure.SpringBootApplication;
  4. import org.springframework.boot.builder.SpringApplicationBuilder;
  5. import org.springframework.boot.context.properties.EnableConfigurationProperties;
  6. import org.springframework.boot.web.support.SpringBootServletInitializer;
  7. import org.springframework.transaction.annotation.EnableTransactionManagement;
  8. //默认属性使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan
  9. @SpringBootApplication
  10. // 启注解事务管理
  11. @EnableTransactionManagement
  12. @EnableConfigurationProperties
  13. public class App extends SpringBootServletInitializer {
  14. public static void main(String[] args) {
  15. SpringApplication.run(App.class, args);
  16. }
  17. @Override
  18. protected SpringApplicationBuilder configure(
  19. SpringApplicationBuilder application) {
  20. return application.sources(App.class);
  21. }
  22. }

五、Druid web ui地址

http://localhost:8080/druid/login.html
用户名admin
密码admin

Paste_Image.png
Paste_Image.png


作者:献给记性不好的自己
链接:https://www.jianshu.com/p/4cb04939e370
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号