SpringBoot使用Druid连接池的示例代码
Druid是Java语言中最好的数据库连接池。Druid相比于其他的数据库连接池,有两大特性:
目前成都创新互联已为上1000+的企业提供了网站建设、域名、网站空间、网站托管、服务器租用、企业网站设计、新城网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
- 监控数据库,有利于分析线上数据库问题
- 更容易扩展,同时也很高效。
今天演示一下Spring Boot集成Druid。
实战
1、添加Maven依赖。
Spring Boot版本使用的是1.x的,2.x的版本druid starter还不支持。不过自定义也是没问题的。
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-jdbc com.alibaba druid-spring-boot-starter 1.1.6
配置Druid
2、Druid应用的配置。
server: port: 9011 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.MySQL.jdbc.Driver druid: initial-size: 5 max-active: 10 min-idle: 5 max-wait: 60000 pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 validation-query: select 1 validation-query-timeout: 60000 test-on-borrow: false test-on-return: false test-while-idle: true time-between-eviction-runs-millis: 60000 filter: stat: log-slow-sql: true db-type: mysql slow-sql-millis: 2000 stat-view-servlet: login-username: druid login-password: druid allow: 127.0.0.1 url-pattern: /druid/* username: root password: 123456 url: jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf-8
通过JavaBean的配置更灵活一些,我们通过JavaBean来配置。
@Configuration public class DruidConfig { @Bean public JdbcTemplate jdbcTemplate(){ return new JdbcTemplate(druidDataSource()); } // ConfigurationProperties可以直接把应用配置的spring.datasource.druid属性开头的值注入到DruidDataSource中 @ConfigurationProperties(prefix = "spring.datasource.druid") @Bean(initMethod = "init",destroyMethod = "close") public DruidDataSource druidDataSource(){ DruidDataSource druidDataSource = new DruidDataSource(); // 添加druid的监控过滤器,当前只演示监控的功能,因此只有一个过滤器,可以实现多个过滤器 LinkedListfiltersList = new LinkedList(); filtersList.add(filter()); druidDataSource.setProxyFilters(filtersList); return druidDataSource; } @Bean public Filter filter(){ StatFilter statFilter = new StatFilter(); // SQL执行时间超过2s种的被判定为慢日志 statFilter.setSlowSqlMillis(2000); //显示慢日志 statFilter.setLogSlowSql(true); //合并SQL,有时,一些相同的慢日志过多影响阅读,开启合并功能 statFilter.setMergeSql(true); return statFilter; } // 监控的面板 @Bean public ServletRegistrationBean servletRegistrationBean(){ // 注册自己的Sevlet return new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); } }
3、新建SQL执行测试
使用JDBCTeplate选取数据库中的数据,我们只是演示Druid的监控效果。
@RestController @SpringBootApplication public class DaoApplication { public static void main(String[] args) { SpringApplication.run(DaoApplication.class,args); } @Autowired JdbcTemplate jdbcTemplate; @RequestMapping("/test") public List test(){ final ListidList = new LinkedList (); jdbcTemplate.query("select * from sh_test1", new RowCallbackHandler() { @Override public void processRow(ResultSet rs) throws SQLException { idList.add(rs.getInt(1)); } }); return idList; } }
运行查看效果
5、演示完毕
到这一步,Druid已经可以在Spring Boot中使用了,Druid提供了很多监控的选项,文章篇幅有限, 只介绍一下Druid集成Spring Boot的用法。
最后
这篇文章演示了一下Druid在SpringBoot中的使用。有关Druid的使用请看下面的参考。
参考
[Druid常见用法] (https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。
文章名称:SpringBoot使用Druid连接池的示例代码
文章链接:http://ybzwz.com/article/jgogcj.html