当前位置 主页 > 网站技术 > 代码类 >

    SpringBoot整合Druid数据源过程详解(2)

    栏目:代码类 时间:2019-12-02 12:07

    5.创建一个DruidConfig的配置类,实例化Druid Datasource

    package com.qingfeng.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;
     
    @Configuration
    public class DruidConfig {
       //指定加载appliction.yml文件里面的spring.datasource开头的
       // DruidDataSource类里面的属性与appliction.yml文件里面的spring.datasource开头的对应映射
      @ConfigurationProperties(prefix = "spring.datasource")
      @Bean
      public DataSource druid(){
        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","123456");
        initParams.put("allow","");//默认就是允许所有访问
        initParams.put("deny","");
     
        bean.setInitParameters(initParams);
        return bean;
      }
     
     
      //2、配置一个web监控的filter
      @Bean
      public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new WebStatFilter());
        Map<String,String> initParams = new HashMap<>();
        initParams.put("exclusions","*.js,*.css,/druid/*");
        bean.setInitParameters(initParams);
        bean.setUrlPatterns(Arrays.asList("/*"));
        return bean;
      }
    }

    6.创建一个UserController类测试

    package com.qingfeng.controller;
     
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.jdbc.core.JdbcTemplate;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
     
    import java.util.List;
    import java.util.Map;
     
    @Controller
    public class UserController {
     
      @Autowired
      JdbcTemplate jdbcTemplate;
      @ResponseBody
      @GetMapping("/query")
      public Map<String,Object> map(){
        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * FROM user");
        return list.get(0);
      }
    }

    7.运行项目,通过浏览器访问 http://localhost:8080/query

    8.我们DruidConfig类里配置的下面代码可以帮我们实现监控

    //配置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","123456");
        initParams.put("allow","");//默认就是允许所有访问
        initParams.put("deny","");
     
        bean.setInitParameters(initParams);
        return bean;
      }