1. Springboot 2.0选择HikariCP作为默认数据库连接池
理由参考:
https://blog.csdn.net/user_regist/article/details/80659970
https://blog.csdn.net/zxl315/article/details/80420688?utm_source=blogxgwz0
2. 数据库连接池性能比对(hikari druid c3p0 dbcp jdbc)
参考:https://blog.csdn.net/qq_31125793/article/details/51241943
pom文件添加druid的依赖:
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.12</version> </dependency>application.properties配置文件添加配置项:
# 连接池druid配置 # 初始化连接数 spring.datasource.initialSize=5 # 最小空闲连接数 spring.datasource.minIdle=5 # 最大连接数 spring.datasource.maxActive=20 # 获取连接等待超时的时间 spring.datasource.maxWait=60000 # 间隔60秒执行一次连接回收器 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 5分钟内没有任何操作的空闲连接会被回收 spring.datasource.minEvictableIdleTimeMillis=300000 # 验证连接有效性的sql spring.datasource.validationQuery=SELECT 1 FROM DUAL # 空闲时校验,建议开启 spring.datasource.testWhileIdle=true # 使用中是否检验有效性,推荐关闭 spring.datasource.testOnBorrow=false # 归还连接时是否检验有效性,推荐关闭 spring.datasource.testOnReturn=false # 打开PSCache,并且指定每个连接上PSCache的大小 spring.datasource.poolPreparedStatements=false # 配置监控统计拦截的过滤器,stat用于接收状态,wall用于防止sql注入,logback用于使用logback日志输出 spring.datasource.filters=stat,wall,logback # sql合并统计,打开mergeSql功能并设置慢sql的时间为 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=1000 # 合并多个DruidDataSource的监控数据 spring.datasource.useGlobalDataSourceStat=true在启动类或自己新建配置类中,添加代码:
@Bean(destroyMethod = "close",initMethod = "init") @ConfigurationProperties(prefix = "spring.datasource") public DataSource druidDatasource() { DruidDataSource druidDataSource = new DruidDataSource(); return druidDataSource; } /** * 注册后台界面的Servlet bean, 用于显示后台界面 * @return */ @Bean public ServletRegistrationBean<StatViewServlet> druidStatViewServlet() { // 创建StatViewServlet, 映射到/druid/路径下 ServletRegistrationBean<StatViewServlet> servletRegistrationBean = new ServletRegistrationBean<StatViewServlet>(new StatViewServlet(), "/druid/*"); //添加初始化参数:initParams //白名单: servletRegistrationBean.addInitParameter("allow","127.0.0.1"); //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page. servletRegistrationBean.addInitParameter("deny","192.168.1.73"); //登录查看信息的账号密码. servletRegistrationBean.addInitParameter("loginUsername","admin"); servletRegistrationBean.addInitParameter("loginPassword","123456"); //是否能够重置数据. servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } /** * 监听获取应用的数据,Filter用于收集数据, Servlet用于展现数据 * @return */ @Bean public FilterRegistrationBean<WebStatFilter> druidStatFilter() { FilterRegistrationBean<WebStatFilter> filterRegistrationBean = new FilterRegistrationBean<WebStatFilter>(new WebStatFilter()); //添加过滤规则. filterRegistrationBean.addUrlPatterns("/*"); //添加不需要忽略的格式信息. filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; }注:@ConfigurationProperties注解可能提示需要添加依赖,添加即可(如果没添加的话)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>启动项目发现数据源已改变为druid:
然后访问后台监控页面:http://localhost:8083/druid/
输入刚才配置的用户名密码即可看到监控后台
---------------------------------------------欢迎关注公众号(生活不止有代码)-------------------------------------------------------