zoukankan      html  css  js  c++  java
  • 【SpringBoot】14 数据访问P2 整合Druid数据源

    【SpringBoot引入Druid数据源】

    在整合Jdbc的工程基础上加入这个依赖

    并注册一个配置类即可

    maven坐标:

    <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.22</version>
    </dependency>

    yml配置只需要在下面补加上这个数据源类型:

    type: com.alibaba.druid.pool.DruidDataSource

    properties配置则是这样:

    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

    如果需要配置关于Druid的相关参数配置

    我们则需要一个自定义配置来辅助完成

    由这个注解激活配置中的连接池参数配置

    完整的druid配置类

    因为跟什么类重名,导致启动失败,

    把这个类名换成DruidConfig就行了

    package cn.dai.config;
    
    import com.alibaba.druid.pool.DruidDataSource;
    import com.alibaba.druid.support.http.StatViewServlet;
    import com.alibaba.druid.support.http.WebStatFilter;
    import org.springframework.boot.context.properties.ConfigurationProperties;
    import org.springframework.boot.web.servlet.FilterRegistrationBean;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import javax.sql.DataSource;
    import java.util.Arrays;
    import java.util.HashMap;
    import java.util.Map;
    
    /**
     * @author ArkD42
     * @file SpringBoot with Jdbc
     * @create 2020 - 05 - 31 - 20:06
     */
    
    @Configuration
    public class DruidDataSourceConfig {
    
        @Bean
        @ConfigurationProperties(prefix = "spring.datasource")
        public DataSource druidDataSourceConfig(){
            return new DruidDataSource();
        }
    
        // 配置Druid的数据监控
        // 1、配置管理后台的应用程序 Servlet
        @Bean
        public ServletRegistrationBean statViewServlet(){
            ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
    
            // 设置初始化信息,例如后台数据监控的登陆信息
            Map<String,String> initParams = new HashMap<>();
            initParams.put("loginUsername","admin");
            initParams.put("loginPassword","654321");
            //允许本地访问,如果value是""就表示允许所有
            initParams.put("allow","localhost");
            //也可以拒绝访问
            initParams.put("deny","192.168.2.190");
    
            bean.setInitParameters(initParams);
            return bean;
        }
    
        // 2、配置一个监控的Filter
        @Bean
        public FilterRegistrationBean webStatFilter(){
            FilterRegistrationBean bean = new FilterRegistrationBean();
    
            bean.setFilter(new WebStatFilter());
    
            Map<String,String> initParams = new HashMap<>();
            //设置排除拦截条件的资源访问
            initParams.put("exclusion","*.js,*.css,/druid/*");
    
            bean.setInitParameters(initParams);
    
            //拦截所有的请求
            bean.setUrlPatterns(Arrays.asList("/*"));
    
            return bean;
        }
    }

    然后我们开始访问后台:

    登陆后的后台监控面板

    因为其他数据源都不具备这个数据监控的功能,但是就只有阿里的有了。。。

    综合考量解决方案还是阿里的更胜一筹【我不听,我不听,我只要最快,Hikari天下第一】

  • 相关阅读:
    解决electron-vue中无法使用Element的Tooltip组件
    解决Electron安装包下载慢的问题
    虚拟机VirtualBox 共享挂载问题:mount: /mnt/xxx: wrong fs type, bad option, bad superblock on xxx
    git 设置和取消代理
    (转载)数据库连接池到底应该设多大?这篇文章可能会颠覆你的认知
    MySQL主主复制+MMM实现高可用
    Mysql5.6主从热备配置
    java 启动 shell脚本
    redis批量删除key
    spring mvc异常统一处理(ControllerAdvice注解)
  • 原文地址:https://www.cnblogs.com/mindzone/p/13021309.html
Copyright © 2011-2022 走看看