栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot2.5.5配置druid数据源1.2.8与jdbc

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot2.5.5配置druid数据源1.2.8与jdbc

【README】

本文记录了 springboot配置 druid数据源的步骤;


【1】新建springboot项目并配置druid

步骤1,新建springbt项目

 步骤2,选择spring web,jdbc,mysql驱动依赖;

步骤3,添加 druid数据源依赖, 生成的pom.xml 如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.5.5
         
    
    com.cmc
    springbt-06-data-jdbc2
    0.0.1-SNAPSHOT
    springbt-06-data-jdbc2
    Demo project for Spring Boot
    
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-jdbc
        
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            mysql
            mysql-connector-java
            runtime
        

        
        
            com.alibaba
            druid
            1.2.8
        
        
        
            log4j
            log4j
            1.2.17
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    


注意,必须添加 log4j 依赖,因为 druid用到了它,不然会报

Failed to bind properties under 'spring.datasource' to javax.sql.DataSource

步骤4,添加druid数据源配置, 启用 druid数据源

application.yml

# 配置springboot数据源
spring:
  datasource:
    username: root
    password: root
    url: jdbc:mysql://192.168.163.204:3306/jdbc01
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource  # 启用druid数据源
    #   数据源其他配置
    initialSize: 6
    minIdle: 6
    maxActive: 26
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    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

步骤5,添加测试用例

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;

@SpringBootTest
class Springbt06DataJdbc2ApplicationTests {

    @Autowired
    DataSource dataSource;

    @Test
    void contextLoads() throws SQLException {
        System.out.println("数据源=" + dataSource.getClass());
        Connection conn =  dataSource.getConnection();
        System.out.println("我的测试连接=" + conn);
        conn.close();
    }
}

打印结果:

数据源=class com.alibaba.druid.pool.DruidDataSource
2021-10-17 08:18:50.867  INFO 7488 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
我的测试连接=com.mysql.cj.jdbc.ConnectionImpl@54e02f6a


 【2】使用druid并配置druid监控页面

步骤1,添加web访问配置

application.properties

# 服务器配置
server.port=8082
server.servlet.context-path=/springbt-data2

步骤2,添加controller访问路径,查询数据库表

@Controller
public class HelloController {
    @Autowired
    JdbcTemplate jdbcTemplate;

    @ResponseBody
    @GetMapping("/query")
    public Map map() {
        List> list = jdbcTemplate.queryForList("select * from department");
        return list.get(0);
    }
}

步骤3,添加druid数据源

// 导入druid数据源
@Configuration
public class DruidConfig {

    @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 params = new HashMap<>();
        params.put("loginUsername", "admin");
        params.put("loginPassword", "admin");
        params.put("allow", "localhost"); // 默认允许所有访问
        params.put("deny", "192.168.163.204"); // 默认允许所有访问
        bean.setInitParameters(params);
        return bean;
    }

    // 2 配置一个监控的filter
    @Bean
    public FilterRegistrationBean webStatFilter() {
        FilterRegistrationBean bean = new FilterRegistrationBean<>();
        bean.setFilter(new WebStatFilter());
        // 配置相关参数
        Map params = new HashMap<>();
        params.put("exclusions", "*.js,*.css,/druid/*");
        bean.setInitParameters(params);
        bean.setUrlPatterns(Arrays.asList("/*"));
        return bean;
    }
}

步骤4,先执行query 请求;

http://localhost:8082/springbt-data2/query

步骤5,查看druid sql监控页面

http://localhost:8082/springbt-data2/druid/login.html

 

步骤6,查看sql监控; 

补充: springboot配置druid及测试案例的目录结构 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/331666.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号