zoukankan      html  css  js  c++  java
  • SpringBoot_数据访问-整合Druid&配置数据源监控

    第一步,在pom.xml文件中导入druid的文件信息
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.1.8</version>
            </dependency>
    第二部,在application.yml配置文件中添加数据源信息
    spring:
      datasource:
        username: root
        password: root
        url: jdbc:mysql://localhost:3306/test
        driver-class-name: com.mysql.jdbc.Driver
        type: com.alibaba.druid.pool.DruidDataSource
    #   schema:
    #     - classpath:oa_course.sql 数据库要执行的脚本
    #   数据源其他配置
        initialSize: 5
        minIdle: 5
        maxActive: 20
        maxWait: 60000
        timeBetweenEvictionRunsMillis: 60000
        minEvictableIdleTimeMillis: 300000
        validationQuery: SELECT 1 FROM DUAL
        testWhileIdle: true
        testOnBorrow: false
        testOnReturn: false
        poolPreparedStatements: true
    #   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
        filters: stat,wall,log4j
        maxPoolPreparedStatementPerConnectionSize: 20
        useGlobalDataSourceStat: true
        connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
    正常druid的一些配置信息是不能使用的需要我们手动写一个配置类:
    package com.baoxing.springboot.config;
    
    import com.alibaba.druid.pool.DruidDataSource;
    import com.alibaba.druid.support.http.StatViewFilter;
    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.ServletListenerRegistrationBean;
    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;
    
    /**
     * Created by chengbx on 2018/6/10.
     */
    @Configuration
    public class DruidConfig {
    
        @ConfigurationProperties(prefix = "spring.datasource")
        @Bean(name = "dataSource")
        public DataSource druid(){
            return  new DruidDataSource();
        }
        //配置Druid的监控
        //1.配置一个管理后台的Servlet
        @Bean
        public ServletRegistrationBean statViewServlet(){
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
            Map<String,String> initParas = new HashMap<>();
            initParas.put("loginUsername","cbx");//后台登录用户
            initParas.put("loginPassword","aaa147");//后台登录密码
            initParas.put("allow","");//默认允许所有访问
            servletRegistrationBean.setInitParameters(initParas);
            return servletRegistrationBean;
        }
    
        //2.配置一个监控的filter
        @Bean
        public FilterRegistrationBean webstatFilter(){
            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
            filterRegistrationBean.setFilter(new WebStatFilter());
            Map<String,String> initParas = new HashMap<>();
            initParas.put("exclusions","*.js,*.css,/druid/*");//哪些文件不进行过滤
    
            filterRegistrationBean.setInitParameters(initParas);
            filterRegistrationBean.setUrlPatterns(Arrays.asList("/*"));
            return filterRegistrationBean;
        }
    }
    手动写一个测试类,调用数据库测试
    
    package com.baoxing.springboot.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;
    
    /**
     * Created by chengbx on 2018/6/10.
     */
    @Controller
    public class HelloController {
    
        @Autowired
        private JdbcTemplate jdbcTemplate;
    
        @ResponseBody
        @GetMapping("/query")
        public List<Map<String,Object>> map(){
            List<Map<String,Object>> list = jdbcTemplate.queryForList("select * from oa_course");
    
            return list;
        }
    
    }
    出现如下界面则说明数据源配置成功

  • 相关阅读:
    SD卡测试
    测试人员可能会遇到的问题
    HDU 1024 Max Sum Plus Plus
    HDU 1176 免费馅饼
    HDU 1257 最少拦截系统
    HDU 1087 Super Jumping! Jumping! Jumping!
    poj 1328 Radar Installation
    poj 1753 Flip Game
    HDU 1003 Max Sum
    HDU 5592 ZYB's Premutation(BestCoder Round #65 C)
  • 原文地址:https://www.cnblogs.com/cbxBlog/p/9241188.html
Copyright © 2011-2022 走看看