【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天下第一】

 

posted @ 2020-05-31 20:37  emdzz  阅读(209)  评论(0编辑  收藏  举报