经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Spring Boot » 查看文章
Spring Boot 自定义数据源DruidDataSource代码
来源:jb51  时间:2019/10/23 12:56:41  对本文有异议

这篇文章主要介绍了Spring Boot 自定义数据源DruidDataSource代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、添加依赖

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid</artifactId>
  4. <version>1.0.26</version>
  5. </dependency>

二、配置application.yml

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://127.0.0.1:3306/mxntest?characterEncoding=UTF-8
  4. username: root
  5. password: root
  6. driver-class-name: com.mysql.jdbc.Driver
  7. type: com.alibaba.druid.pool.DruidDataSource
  8. # 初始化大小,最小,最大
  9. initialSize: 5
  10. minIdle: 5
  11. maxActive: 50
  12. # 配置获取连接等待超时的时间
  13. maxWait: 60000

三、Druid数据源配置

  1. package com.example.demo.config;
  2.  
  3. /**
  4. * @author 12084
  5. * @create 2018-08-09 11:27
  6. */
  7.  
  8. import com.alibaba.druid.pool.DruidDataSource;
  9. import com.alibaba.druid.support.http.StatViewServlet;
  10. import com.alibaba.druid.support.http.WebStatFilter;
  11. import org.springframework.beans.factory.annotation.Value;
  12. import org.springframework.boot.web.servlet.FilterRegistrationBean;
  13. import org.springframework.boot.web.servlet.ServletRegistrationBean;
  14. import org.springframework.context.annotation.Bean;
  15. import org.springframework.context.annotation.Configuration;
  16. import org.springframework.context.annotation.Primary;
  17.  
  18. import javax.sql.DataSource;
  19. import java.sql.SQLException;
  20. import java.util.HashMap;
  21. import java.util.Map;
  22.  
  23. /**
  24. * Druid数据源配置
  25. */
  26. @Configuration
  27. public class DataSourceConfig {
  28.  
  29. private static String dbUrl;
  30.  
  31. private static String username;
  32.  
  33. private static String password;
  34.  
  35. private static String driverClassName;
  36.  
  37. private static int initialSize;
  38.  
  39. private static int minIdle;
  40.  
  41. private static int maxActive;
  42.  
  43. private static int maxWait;
  44.  
  45. /**
  46. * 注册DruidServlet
  47. *
  48. * @return
  49. */
  50. @Bean
  51. public ServletRegistrationBean druidServletRegistrationBean() {
  52. ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
  53. servletRegistrationBean.setServlet(new StatViewServlet());
  54. servletRegistrationBean.addUrlMappings("/druid/*");
  55. //登录查看信息的账号密码.
  56. servletRegistrationBean.addInitParameter("loginUsername", "admin");
  57. servletRegistrationBean.addInitParameter("loginPassword", "123456");
  58. return servletRegistrationBean;
  59. }
  60.  
  61. /**
  62. * 注册DruidFilter拦截
  63. *
  64. * @return
  65. */
  66. @Bean
  67. public FilterRegistrationBean druidFilterRegistrationBean() {
  68. FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
  69. filterRegistrationBean.setFilter(new WebStatFilter());
  70. Map<String, String> initParams = new HashMap<String, String>();
  71. //设置忽略请求
  72. initParams.put("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*");
  73. filterRegistrationBean.setInitParameters(initParams);
  74. filterRegistrationBean.addUrlPatterns("/*");
  75. return filterRegistrationBean;
  76. }
  77.  
  78. /**
  79. * 配置DataSource
  80. * @return
  81. * @throws SQLException
  82. */
  83. @Bean(initMethod = "init",destroyMethod = "close")
  84. @Primary
  85. public DataSource dataSource() throws SQLException {
  86. DruidDataSource druidDataSource = new DruidDataSource();
  87. druidDataSource.setUsername(username);
  88. druidDataSource.setPassword(password);
  89. druidDataSource.setUrl(dbUrl);
  90. druidDataSource.setFilters("stat,wall");
  91. druidDataSource.setInitialSize(initialSize);
  92. druidDataSource.setMinIdle(minIdle);
  93. druidDataSource.setMaxActive(maxActive);
  94. druidDataSource.setMaxWait(maxWait);
  95. druidDataSource.setUseGlobalDataSourceStat(true);
  96. druidDataSource.setDriverClassName(driverClassName);
  97. return druidDataSource;
  98. }
  99.  
  100. @Value("${spring.datasource.url}")
  101. public void setDbUrl(String dbUrl) {
  102. DataSourceConfig.dbUrl = dbUrl;
  103. }
  104.  
  105. @Value("${spring.datasource.username}")
  106. public void setUsername(String username) {
  107. DataSourceConfig.username = username;
  108. }
  109.  
  110. @Value("${spring.datasource.password}")
  111. public void setPassword(String password) {
  112. DataSourceConfig.password = password;
  113. }
  114.  
  115. @Value("${spring.datasource.driver-class-name}")
  116. public void setDriverClassName(String driverClassName) {
  117. DataSourceConfig.driverClassName = driverClassName;
  118. }
  119.  
  120. @Value(value = "${spring.datasource.initialSize}")
  121. public void setInitialSize(int initialSize) {
  122. DataSourceConfig.initialSize = initialSize;
  123. }
  124.  
  125. @Value(value = "${spring.datasource.minIdle}")
  126. public void setMinIdle(int minIdle) {
  127. DataSourceConfig.minIdle = minIdle;
  128. }
  129.  
  130. @Value(value = "${spring.datasource.maxActive}")
  131. public void setMaxActive(int maxActive) {
  132. DataSourceConfig.maxActive = maxActive;
  133. }
  134.  
  135. @Value(value = "${spring.datasource.maxWait}")
  136. public void setMaxWait(int maxWait) {
  137. DataSourceConfig.maxWait = maxWait;
  138. }
  139.  
  140. }

四、http://localhost:8080/druid/index.html 就可以查看,如果配置密码则输入密码

  1. //登录查看信息的账号密码.
  2. servletRegistrationBean.addInitParameter("loginUsername", "admin");
  3. servletRegistrationBean.addInitParameter("loginPassword", "123456");

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号