300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > spring boot socket长连接_springboot 整合阿里 druid 数据库连接池实战

spring boot socket长连接_springboot 整合阿里 druid 数据库连接池实战

时间:2022-07-17 23:50:08

相关推荐

spring boot socket长连接_springboot 整合阿里 druid 数据库连接池实战

情景

web 开发中连接数据库基本是必须的,阿里的 druid 是一款非常优秀的开源数据库连接池工具。

本文将介绍一下如何使用 springboot 整合 druid 数据源。

快速开始

maven 引入

<?xml version="1.0"encoding="UTF-8"?>org.springframework.bootspring-boot-starter-parent2.1.1.RELEASE4.0.0spring-boot-druidhelloworldorg.springframework.bootspring-boot-starter-weborg.springframework.bootspring-boot-starter-data-jpacom.alibabadruid-spring-boot-starter1.1.17mysqlmysql-connector-java5.1.47org.springframework.bootspring-boot-maven-plugin

基本配置

这里使用了 druid-spring-boot-starter 引导类,所以最基本的配置只需要在 applicaiton.yml 文件中指定一下数据库连接信息就行了。

以 mysql 为例:

spring:datasource:druid:username:rootpassword:123456url:jdbc:mysql://localhost:3306/padmin?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTCdriver-class-name:com.mysql.jdbc.Driver

DruidConfig.java

当然 druid 还提供了其他更加强大的功能。

比如数据源的各种监控,黑白名单,sql 注入拦截等等。

packagecom.github.houbb.spring.boot.learn;importcom.alibaba.druid.pool.DruidDataSource;importcom.alibaba.druid.support.http.StatViewServlet;importcom.alibaba.druid.support.http.WebStatFilter;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.boot.web.servlet.FilterRegistrationBean;importorg.springframework.boot.web.servlet.ServletRegistrationBean;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importjavax.sql.DataSource;importjava.util.HashMap;importjava.util.Map;@ConfigurationpublicclassDruidConfig{@ConfigurationProperties(prefix="spring.datasource")@BeanpublicDataSourcedruidDataSource(){returnnewDruidDataSource();}//因为Springboot内置了servlet容器,所以没有web.xml,替代方法就是将ServletRegistrationBean注册进去//加入后台监控@Bean//这里其实就相当于servlet的web.xmlpublicServletRegistrationBeanstatViewServlet(){ServletRegistrationBeanbean=newServletRegistrationBean<>(newStatViewServlet(),"/druid/*");//后台需要有人登录,进行配置//bean.addUrlMappings();这个可以添加映射,我们在构造里已经写了//设置一些初始化参数MapinitParas=newHashMap();initParas.put("loginUsername","admin");//它这个账户密码是固定的initParas.put("loginPassword","123456");//允许谁能防伪initParas.put("allow","");//这个值为空或没有就允许所有人访问,ip白名单//initParas.put("allow","localhost");//只允许本机访问,多个ip用逗号,隔开//initParas.put("deny","");//ip黑名单,拒绝谁访问deny和allow同时存在优先denyinitParas.put("resetEnable","false");//禁用HTML页面的Reset按钮bean.setInitParameters(initParas);returnbean;}//再配置一个过滤器,Servlet按上面的方式注册Filter也只能这样@BeanpublicFilterRegistrationBeanwebStatFilter(){FilterRegistrationBeanbean=newFilterRegistrationBean();//可以设置也可以获取,设置一个阿里巴巴的过滤器bean.setFilter(newWebStatFilter());bean.addUrlPatterns("/*");//可以过滤和排除哪些东西MapinitParams=newHashMap();//把不需要监控的过滤掉,这些不进行统计initParams.put("exclusions","*.js,*.css,/druid/*");bean.setInitParameters(initParams);returnbean;}}

main 方法

packagecom.github.houbb.spring.boot.learn;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;importorg.springframework.cache.annotation.EnableCaching;@SpringBootApplicationpublicclassApplication{publicstaticvoidmain(String[]args){SpringApplication.run(Application.class,args);}}

访问

http://localhost:8080/druid/login.html

输入账户密码,就可以登录。

小结

这里的 druid-spring-boot-starter 的原理,大家可以参考下 实现你的自定义 springboot starter 实战。

Druid 作为一款优秀的数据连接池开源工具,个人是非常喜欢的,平时工作和学习也一直在使用。

当然,独木不成林。

druid 和 mybatis 配合起来使用效果更好,下一节我们就介绍一下如何使用 springboot 整合 mybatis + druid,感兴趣的小伙伴不妨关注一波,不迷路~

本实战系列用于记录 springboot 的实际使用和学习笔记。

希望本文对你有所帮助,如果喜欢,欢迎点赞收藏转发一波。

我是老马,期待与你的下次相遇。

拓展阅读

面试官:知道 springboot 的启动原理吗?

5 分钟入门 springboot 实战学习笔记

实现你的自定义 springboot starter 实战

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。