赞
踩
前言
对于数据访问层,无论是Sql还是NoSql,SpringBoot默认采用整合SpringData的方式进行统一管理,添加大量的自动配置,屏蔽了很多设置。引入了各种XxxTemplate和XxxRepository来简化我们队数据访问层的操作。
SpringBoot2.0默认是用com.zaxxer.hikari.HikariDataSource作为数据源。
2.0以下默认采用的是org.apache.tomcat.jdbc.pool.DataSource作为数据源。
Hikari的官方网站:http://brettwooldridge.github.io/HikariCP/
Hikari号称JAVA领域中最快的数据连接池,你可去点连接进去看看,第一行就是说他自己多么厉害,秒杀什么什么的,不过再快我也觉得没有阿里巴巴奉献给apache的Druid好,因为阿里巴巴的服务周到,里面有监控中心,可以帮助我们快速定位慢sql等。
Druid官方网站:http://druid.io/
使用Druid数据源,它是阿里巴巴开发的一个数据库连接池
Apache Druid(Incubating) - 面向列的分布式数据存储,非常适合为交互式应用程序提供动力
虽然HikariDataSource性能非常高,但是阿里的druid数据源配有成套的数据源管理软件,开发中使用的更多。
以往我们都是直接引入Druid的依赖:
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid</artifactId>
- <version>1.1.4</version>
- </dependency>
- 但是面对这么火爆的Druid,
- SpringBoot并没有直接对Druid的启动器而是需要我们自己整合,
- apache中4个月前已经出了一套完美支持SpringBoot的方案所以说我们不使用上面的依赖而是使用:
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>druid-spring-boot-starter</artifactId>
- <version>1.1.10</version>
- </dependency>
配置YML文件,具体的参数配置可以去官网看看:
- server.port=8080
- ### MySQL连接信息---------------------
- spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&serverTimezone=UTC
- spring.datasource.username=root
- spring.datasource.password=root
- spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-
- # 数据源配置--------------------------------------
- spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
- #初始化时建立物理连接的个数
- spring.datasource.druid.initial-size=3
- #最小连接池数量
- spring.datasource.druid.min-idle=3
- #最大连接池数量
- spring.datasource.druid.max-active=10
- #获取连接时最大等待时间
- spring.datasource.druid.max-wait=60000
- #配置监控页面访问登录名称
- spring.datasource.druid.stat-view-servlet.login-username=admin
- #配置监控页面访问密码
- spring.datasource.druid.stat-view-servlet.login-password=admin
- #是否开启慢sql查询监控
- spring.datasource.druid.filter.stat.log-slow-sql=true
- #慢SQL执行时间
- spring.datasource.druid.filter.stat.slow-sql-millis=1
- spring.main.allow-bean-definition-overriding=true
Druid的最强大之处在于它有着强大的监控,可以监控我们发送到数据库的所有sql语句。方便我们后期排插错误。
我们接着在DruidDataSource里面配置监控中心:
- package com.example.common.filter;
-
- import com.alibaba.druid.pool.DruidDataSource;
- import com.alibaba.druid.support.http.StatViewServlet;
- import com.alibaba.druid.support.http.WebStatFilter;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.boot.web.servlet.FilterRegistrationBean;
- import org.springframework.boot.web.servlet.ServletRegistrationBean;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
-
- import javax.sql.DataSource;
-
- /**
- * 通过代码的方式注册servlet,filter
- */
- @Configuration
- public class DruidConfiguration
- {
- /**
- * 注册servlet
- * @return
- * @author SimpleWu
- */
- @Bean
- public ServletRegistrationBean statViewServlet() {
- //注册servlet
- ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
- // 添加IP白名单
- servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
- // 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高
- servletRegistrationBean.addInitParameter("deny", "127.0.0.1");
- // 添加控制台管理用户
- servletRegistrationBean.addInitParameter("loginUsername", "admin");
- servletRegistrationBean.addInitParameter("loginPassword", "123456");
- // 是否能够重置数据
- servletRegistrationBean.addInitParameter("resetEnable", "false");
- return servletRegistrationBean;
- }
-
- /**
- * 注册过滤器
- *
- * @return
- */
- @Bean
- public FilterRegistrationBean statFilter() {
- //注册过滤器
- FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
- // 添加过滤规则
- filterRegistrationBean.addUrlPatterns("/*");
- // 忽略过滤格式
- filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/,");
- return filterRegistrationBean;
- }
-
- @Bean
- @ConfigurationProperties(prefix = "spring.datasource")
- public DataSource druidDataSource() {
- return new DruidDataSource();
- }
-
- }
配置完后我们启动SpringBoot程序访问:
http://localhost:8080/druid/index.html 就可以来到我们的登录页面面就是我们上面添加的控制台管理用户


Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。