SpringCloud+Druid(数据库连接池)
2018-01-25 20:28
447 查看
Druid是Java语言中最好的数据库连接池。
Druid能够提供强大的监控和扩展功能。Druid是一个用于大数据实时查询和分析的高容错、高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。尤其是当发生代码部署、机器故障以及其他产品系统遇到宕机等情况时,Druid仍能够保持100%正常运行。创建Druid的最初意图主要是为了解决查询延迟问题,当时试图使用Hadoop来实现交互式查询分析,但是很难满足实时分析的需要。而Druid提供了以交互方式访问数据的能力,并权衡了查询的灵活性和性能而采取了特殊的存储格式。
来集成到项目中去吧
Maven
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.0</version> </dependency>
application.xml配置文件
## 数据源配置 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc:mysql://localhost:3306/zuoqing?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.jdbc.Driver ## Mybatis 配置(持久层框架自己选择) mybatis.typeAliasesPackage=com.xiaobudiankeji.base.entity mybatis.mapperLocations=classpath*:mapper/*.xml #durid登陆账号密码 loginUsername=root loginPassword=123456 # 下面为连接池的补充设置,应用到上面所有数据源中 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置获取连接等待超时的时间 spring.datasource.maxWait=60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 FROM DUAL spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙,防止sql注入 spring.datasource.filters=stat,wall,log4j spring.datasource.logSlowSql=true #http://localhost:8765/druid/sql.html 访问这个页面
DruidConfig.java Java code
/** * Created by gaomin on 2017/12/1. */ @Configuration public class DruidConfig { private Logger logger = LoggerFactory.getLogger(DruidConfig.class); @Value("${spring.datasource.url}") private String dbUrl; @Value("${spring.datasource.type}") private String type; @Value("${loginUsername}") private String loginUsername; @Value("${loginPassword}") private String loginPassword; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Value("${spring.datasource.driver-class-name}") private String driverClassName; @Value("${spring.datasource.initialSize}") private int initialSize; @Value("${spring.datasource.minIdle}") private int minIdle; @Value("${spring.datasource.maxActive}") private int maxActive; @Value("${spring.datasource.maxWait}") private int maxWait; @Value("${spring.datasource.timeBetweenEvictionRunsMillis}") private int timeBetweenEvictionRunsMillis; @Value("${spring.datasource.minEvictableIdleTimeMillis}") private int minEvictableIdleTimeMillis; @Value("${spring.datasource.validationQuery}") private String validationQuery; @Value("${spring.datasource.testWhileIdle}") private boolean testWhileIdle; @Value("${spring.datasource.testOnBorrow}") private boolean testOnBorrow; @Value("${spring.datasource.testOnReturn}") private boolean testOnReturn; @Value("${spring.datasource.filters}") private String filters; @Value("${spring.datasource.logSlowSql}") private String logSlowSql; @Bean public ServletRegistrationBean druidServlet() { ServletRegistrationBean reg = new ServletRegistrationBean(); reg.setServlet(new StatViewServlet()); reg.addUrlMappings("/druid/*"); reg.addInitParameter("loginUsername", loginUsername); reg.addInitParameter("loginPassword", loginPassword); reg.addInitParameter("logSlowSql", logSlowSql); 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; } @Bean public DataSource druidDataSource() { DruidDataSource datasource = new DruidDataSource(); datasource.setUrl(dbUrl); datasource.setUsername(username); datasource.setPassword(password); datasource.setDriverClassName(driverClassName); datasource.setInitialSize(initialSize); datasource.setMinIdle(minIdle); datasource.setMaxActive(maxActive); //datasource.setDbType(type); datasource.setMaxWait(maxWait); datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); datasource.setValidationQuery(validationQuery); datasource.setTestWhileIdle(testWhileIdle); datasource.setTestOnBorrow(testOnBorrow); datasource.setTestOnReturn(testOnReturn); try { datasource.setFilters(filters); } catch (SQLException e) { logger.error("druid configuration initialization filter", e); } return datasource; } }
运行你的项目就可以访问http://localhost:8765/druid/sql.html (端口号)这个页面,可以查看sql执行时间,接口请求时间,超级多有用的信息,毕竟是阿里巴巴的开源项目,能不强大吗?
相关文章推荐
- Spring Boot [使用 Druid 数据库连接池]
- 在Spring框架中配置Druid数据库连接池并且Spring和DbUtils进行整合
- springboot 集成 druid 数据库连接池
- Spring Cloud (15) | Spring Boot、HikariCP、Mybatis和MySQL 配置HikariCP数据库连接池
- Spring Boot [使用 Druid 数据库连接池]
- java鬼混笔记:springboot 7、springboot整合mybatis后再加上druid数据库连接池
- spring配置dataSource:druid数据库连接池
- spring jdbc --注:c3p0数据库连接池或druid连接池使用配置整理
- spring配置数据库连接池druid
- SpringBoot初始教程之数据库连接池(druid)
- Spring Boot集成Druid数据库连接池
- Spring Boot 集成 Mybatis(druid 数据库连接池 以及 分页配置)
- Druid 数据库连接池监控配置(spring web项目)
- Spring-boot使用druid数据库连接池构建数据源
- SpringBoot整合Mybatis时使用Druid数据库连接池
- springboot整合druid数据库连接池
- SpringBoot之数据库连接池(druid)
- spring下使用数据库连接池druid及数据库性能监控的配置
- SpringBoot整合Mybatis使用Druid数据库连接池
- springboot整合druid数据库连接池并开启监控