zoukankan      html  css  js  c++  java
  • springboot集成druid数据源

    package com.book.app.utils;

    import java.util.HashMap;
    import java.util.Map;

    import javax.sql.DataSource;

    import org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator;
    import org.springframework.boot.bind.RelaxedPropertyResolver;
    import org.springframework.boot.web.servlet.FilterRegistrationBean;
    import org.springframework.boot.web.servlet.ServletRegistrationBean;
    import org.springframework.context.EnvironmentAware;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.env.Environment;

    import com.alibaba.druid.pool.DruidDataSource;
    import com.alibaba.druid.support.http.StatViewServlet;
    import com.alibaba.druid.support.http.WebStatFilter;
    import com.alibaba.druid.support.spring.stat.DruidStatInterceptor;
    @Configuration
    public class DruidDataSourceConfig implements EnvironmentAware {

    private RelaxedPropertyResolver propertyResolver;
    /**
    * 功能:可以看druid的一些信息,不看可以不配
    */
    public void setEnvironment(Environment env) {
    this.propertyResolver = new RelaxedPropertyResolver(env,"spring.datasource.");
    }
    @Bean
    public DataSource dataSource() {
    DruidDataSource dataSource = new DruidDataSource();
    dataSource.setUrl(propertyResolver.getProperty("url"));
    dataSource.setDriverClassName(propertyResolver.getProperty("driver-class-name"));
    dataSource.setPassword(propertyResolver.getProperty("password"));
    dataSource.setUsername(propertyResolver.getProperty("username"));
    try {
    dataSource.setFilters("stat,wall");
    } catch (Exception e) {
    e.printStackTrace();
    }
    return dataSource;
    }
    @Bean
    public ServletRegistrationBean druidServlet() {
    ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
    servletRegistrationBean.setServlet(new StatViewServlet());
    servletRegistrationBean.addUrlMappings("/druid/*");
    Map<String, String> initParameters = new HashMap<String,String>();
    initParameters.put("resetEnable","false");
    initParameters.put("allow", "127.0.0.1");
    servletRegistrationBean.setInitParameters(initParameters);
    return servletRegistrationBean;

    }
    @Bean
    public FilterRegistrationBean filterRegistrationBean() {
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
    filterRegistrationBean.setFilter(new WebStatFilter());
    filterRegistrationBean.addUrlPatterns("/*");
    filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css");
    return filterRegistrationBean;
    }
    @Bean
    public DruidStatInterceptor druidStatInterceptor() {
    DruidStatInterceptor druidStatInterceptor = new DruidStatInterceptor();
    return druidStatInterceptor;
    }

    public BeanNameAutoProxyCreator beanNameAutoProxyCreator() {
    BeanNameAutoProxyCreator beanNameAutoProxyCreator = new BeanNameAutoProxyCreator();
    beanNameAutoProxyCreator.setProxyTargetClass(true);
    beanNameAutoProxyCreator.setInterceptorNames("druid-stat-interceptor");
    return beanNameAutoProxyCreator;
    }

    }

  • 相关阅读:
    matlab后处理保存avi动画
    Python3在Windows安装配置及简单试用
    Matlab,C++存取二进制
    批量修改文件名
    这是我的第一篇博客园博客
    android的平台架构及特性
    Android开发学习
    跟着9张思维导图学习Javascript
    如何使用css和jquery控制文章标题字数?
    分离构造器(2-2)
  • 原文地址:https://www.cnblogs.com/manager222/p/10077372.html
Copyright © 2011-2022 走看看