Spring Data JPA 从入门到精通~AliDruidDataSource的配置

AliDruid 配置方法

(1)在实际工作中,由于 HikariCP 和 Druid 应该各有千秋,会发现偏向于监控,有很多国内开发 者使用频次最高的 AliDruid,我们来看看看如何配置。

<!--druid--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.5</version></dependency>

(2)一样的思路,我们打开 DruidDataSourceAutoConfigure 配置类。

@Configuration
@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)
@AutoConfigureBefore(DataSourceAutoConfiguration.class)
@EnableConfigurationProperties({DruidStatProperties.class, DataSourceProperties.class})
@Import({DruidSpringAopConfiguration.class,DruidStatViewServletConfiguration.class,DruidWebStatFilterConfiguration.class,DruidFilterConfiguration.class})
public class DruidDataSourceAutoConfigure {@Bean@ConditionalOnMissingBeanpublic DataSource dataSource() {return new DruidDataSourceWrapper();}/*** Register the {@link DataSourcePoolMetadataProvider} instances to support DataSource metrics.** @see DataSourcePoolMetadataProvidersConfiguration*/@Beanpublic DataSourcePoolMetadataProvider druidDataSourcePoolMetadataProvider() {return new DataSourcePoolMetadataProvider() {@Overridepublic DataSourcePoolMetadata getDataSourcePoolMetadata(DataSource dataSource) {if (dataSource instanceof DruidDataSource) {return new DruidDataSourcePoolMetadata((DruidDataSource) dataSource);}return null;}};}
}

我们发现 Druid 继承了 DataSourceProperties 的配置。

(3)我们打开 DruidDataSourceWrapper:

@ConfigurationProperties("spring.datasource.druid")
class DruidDataSourceWrapper extends DruidDataSource implements InitializingBean {@Autowiredprivate DataSourceProperties basicProperties;@Overridepublic void afterPropertiesSet() throws Exception {//if not found prefix 'spring.datasource.druid' jdbc properties ,'spring.datasource' prefix jdbc properties will be used.if (super.getUsername() == null) {super.setUsername(basicProperties.determineUsername());}if (super.getPassword() == null) {super.setPassword(basicProperties.determinePassword());}if (super.getUrl() == null) {super.setUrl(basicProperties.determineUrl());}if (super.getDriverClassName() == null) {super.setDriverClassName(basicProperties.determineDriverClassName());}}
......}

发现了 DataSource 的配置方法:

spring.datasource.druid.url=jdbc:mysql://127.0.0.1:3306/test # 或spring.datasource.url= 
spring.datasource.druid.username=jack # 或spring.datasource.username=
spring.datasource.druid.password=jack123 # 或spring.datasource.password=
spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver #或 spring.datasource.driver-class-name=

(4)如果我们再打开 DruidDataSource 类,就会发现连接池的配置方法:

spring.datasource.druid.initial-size=
spring.datasource.druid.max-active=
spring.datasource.druid.min-idle=
spring.datasource.druid.max-wait=
spring.datasource.druid.pool-prepared-statements=
spring.datasource.druid.max-pool-prepared-statement-per-connection-size= 
spring.datasource.druid.max-open-prepared-statements= #和上面的等价
spring.datasource.druid.validation-query=
spring.datasource.druid.validation-query-timeout=
spring.datasource.druid.test-on-borrow=
spring.datasource.druid.test-on-return=
spring.datasource.druid.test-while-idle=
spring.datasource.druid.time-between-eviction-runs-millis=
spring.datasource.druid.min-evictable-idle-time-millis=
spring.datasource.druid.max-evictable-idle-time-millis=
spring.datasource.druid.filters= #配置多个英文逗号分隔
....//more

如果再继续往上面看 DruidAbstractDataSource,会发现很多默认值。

(5)如果依次打开以下这些类,也会发现 Druid 的更多配置:

@Import({DruidSpringAopConfiguration.class,DruidStatViewServletConfiguration.class,DruidWebStatFilterConfiguration.class,DruidFilterConfiguration.class})

WebStatFilter 配置,说明请参考 Druid Wiki,配置 WebStatFilter:

spring.datasource.druid.web-stat-filter.enabled= #是否启用StatFilter默认值true
spring.datasource.druid.web-stat-filter.url-pattern=

StatViewServlet 配置,说明请参考 Druid Wiki,配置 StatViewServlet:

spring.datasource.druid.stat-view-servlet.enabled= #是否启用StatViewServlet默认值true
spring.datasource.druid.stat-view-servlet.login-username=
spring.datasource.druid.stat-view-servlet.login-password=

Druid的更多配置请参看官方文档吧,只是给大家举例如何一步一步的查看这些配置,而得到如何配置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/496294.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

励志演讲

王国权励志演讲&#xff08;很有激情&#xff09;转载于:https://www.cnblogs.com/Xredman/archive/2009/07/23/1529186.html

谷歌X实验室的“无用”发明

来源&#xff1a;OFweek人工智能网摘要&#xff1a;作为想要改变世界的科技界钢铁侠&#xff0c;谷歌自诞生起就发明无数。1999年&#xff0c;公司创始人拉里佩奇用导航地图开车载他同事经过一个停车场时突然想到&#xff1a;在线搜索也可以盈利。当时他认为&#xff0c;谷歌能…

php跳一跳小游戏,原生JS实现的跳一跳小游戏完整实例

本文实例讲述了原生JS实现的跳一跳小游戏。分享给大家供大家参考&#xff0c;具体如下&#xff1a;以下说的是闲暇编写的一个小游戏--跳一跳&#xff0c;类似于微信的跳一跳&#xff0c;大体实现功能有&#xff1a;1.先随机生成地图&#xff1b;2.按住按钮释放后完成动作并进行…

windows 快捷键整理

Win10快捷键大全汇总&#xff1a;http://www.pc6.com/infoview/Article_110854.html 电脑键盘快捷键和组合键功能使用大全&#xff1a;http://product.pconline.com.cn/itbk/diy/mouse/1305/3298585.html 键盘上的键都有哪些用途&#xff1a;https://www.gezila.com/tutori…

我想知道怎么求N的N次方

我想知道怎么求N的N次方&#xff0c;这个数据是很大的&#xff0c;但是我要的是这个数据的最高位的数&#xff0c;应该有什么好的方法吧&#xff01; 请大侠们帮帮忙吧&#xff01;&#xff01;&#xff08;N <1000000000&#xff09; 这个问题提出后&#xff0c;fallening同…

Google提出新型学习范式「Deep Memory」,或将彻底改变机器学习领域

图源&#xff1a;pixabay原文来源&#xff1a;arXiv作者&#xff1a;Sylvain Gelly、Karol Kurach、Marcin Michalski、Xiaohua Zhai「雷克世界」编译&#xff1a;嗯~是阿童木呀、KABUDA导语&#xff1a;最近&#xff0c;Google提出了一种称之为Deep Memory的新型学习范式&…

php内容管理器是什么原因,有什么好的php内容管理后台吗?打算试水接单的大三狗提问...

国外优秀的CMS有drupal, joomla, wordpress, typo3drupal最专业&#xff0c;扩展强大&#xff0c;但最难入门&#xff1b;wordpress最简单&#xff0c;模板多&#xff0c;但难以实现高要求&#xff1b;joomla扩展多&#xff0c;入门简单&#xff0c;但后台组织比较混乱&#xf…

网络 IPC 套接字socket

APUE书中所有实例源码下载地址&#xff1a;http://www.apuebook.com apue学习笔记&#xff08;第十六章 网络IPC&#xff1a;套接字&#xff09;&#xff1a;https://www.cnblogs.com/runnyu/p/4648678.html 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC&#xff1a;套接字…

Spring Data JPA 从入门到精通~事务的处理及其讲解

默认 Transactional 注解式事务 &#xff08;1&#xff09;EnableTransactionManagement 正常情况下&#xff0c;我们是需要在 ApplicationConfig 类加上 EnableTransactionManagement 注解才能开启事务管理。通过 DataSource 的研究步骤 spring.factories 里面默认加载 Tran…

ASP.NET MVC V2 Preview 1 发布 期望VS有更好的表现

ASP.NET MVC V2 Preview 1官方首页&#xff1a;http://aspnet.codeplex.com/ 在这里可以下载 以下是网友的转载&#xff0c;介绍的还是比较详细的&#xff1a; 预览版是在.NET 3.5 SP1和VS 2008下工作的&#xff0c;可与ASP.NET MVC 1.0并行安装在同一个机器上&#xff08;即&a…

MC缓存序列化php,PHP serialize()序列化的使用

PHP serialize()序列化的使用可以将数组和对象直接存入数据库中的某一字段。使serialize()是将数组反序列化再存入数据库&#xff0c;序列化话完的数据就是一个字符串。提取的时候&#xff0c;用unserialize()反序列化取&#xff0c;取出来的还是个数组。$arr array(value1,va…

全球最权威的区块链行业报告

来源&#xff1a;腾讯研究院美国加密货币报道媒体CoinDesk近期发布“全球区块链现状报告”&#xff0c;深入研究了快速发展的加密货币行业及其底层技术&#xff0c;该报告覆盖了公共区块链、企业区块链、ICO、投资以及监管等话题&#xff0c;另外还对3000多名投资者的加密货币投…

Google 的 C++ 代码规范

Google 开源项目风格指南 (中文版)&#xff1a;https://zh-google-styleguide.readthedocs.io/en/latest/ 英文版&#xff1a;http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml 中文版&#xff1a;http://zh-google-styleguide.readthedocs.org/en/latest/goog…

解析/etc/inittab 文件(转)

原文地址&#xff1a;http://hi.baidu.com/fembed/blog/item/62a509f01b2e69aaa40f528c.htmlinit程序需要读取配置文件/etc/inittab。inittab是一个不可执行的文本文件&#xff0c;它有若干行指令所组成。在Redhat系统中&#xff0c;inittab的内容如下所示(以“###"开始的…

Spring Data JPA 从入门到精通~如何配置多数据源

如何配置多数据源 在 application.properties 中定义两个 DataSource 定义两个 DataSource 用来读取 application.properties 中的不同配置。如下例子中&#xff0c;主数据源配置为 spring.datasource.one 开头的配置&#xff0c;第二数据源配置为 spring.datasource.two 开头…

NASA投资有远景技术,有望改变未来人类和机器人的勘探任务

来源&#xff1a; 机器人创新生态据NASA官网报道&#xff0c;美国宇航局(NASA)正在投资有远见的技术概念&#xff0c;包括流星撞击探测、太空望远镜群以及细小轨道碎片测绘技术&#xff0c;这些技术将来可能被用于未来的太空探索任务中。美国宇航局已经选出25个还处于早期的技术…

feedback.php,feedback.php

Feedback | Training Labif (!isset($_SESSION[username])) {header(Location: index.php#loginSub);}if($_GET){//查询require_once DAO.php;$dbnew DB();$data[fb_id] $_GET[feedbackid];$judge[fb_id] ;list($conSql, $mapConData) $db->FDFields($data,"",…

2008中国软件企业出口(外包)20强

2008中国软件企业出口20强 1 东软集团股份有限公司 2 大连华信计算机技术股份有限公司 3 海辉软件(国际)集团 4 浙大网新科技股份有限公司 5 中软国际有限公司 6 北大方正集团有限公司 7 上海中和软件有限公司 8 日电卓越软件科技(北京)有限公司 9 上海海隆软件股份有限公司 10…

人工智能如何影响社会经济:关于近期文献的一个综述

作者&#xff1a;陈永伟 文章来源&#xff1a;经济学原理 相比于之前的历次技术进步&#xff0c;“人工智能革命”所引发的冲击更为巨大&#xff0c;其对经济学造成的影响也将更为广泛和深远。人工智能技术的突飞猛进&#xff0c;对经济社会的各个领域都产生了重大影响&#…

oracle近似查找,距离内的Oracle空间搜索

对于mySQL距离搜索,你有很好的参考.忘记Oracle Spatial的东西.代码太多,复杂性太大,没有足够的增值.这是一个可以解决问题的查询.这使用法定里程的距离.编辑这修复了mdarwin提到的错误,如果你试图将它用于北极或南极的位置,则以划分检查为代价.SELECT id, city, LATITUDE, LONG…