Spring Boot使用和配置Druid

yizhihongxing

下面是SpringBoot使用和配置Druid的完整攻略:

1. 引入Druid和SpringBoot Starter依赖

在Maven的pom.xml文件中,加入Druid和SpringBoot Starter的依赖。

<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>druid-spring-boot-starter</artifactId>
   <version>${druid.version}</version>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

druid.version在本文中统一指定为1.2.4

2. 配置Druid数据源

application.properties文件中配置Druid数据源的参数,例如:

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

#Druid配置
#初始化大小、最小、最大
spring.datasource.initial-size=5
spring.datasource.min-idle=5
spring.datasource.max-active=20
#获取连接等待超时的时间
spring.datasource.max-wait=60000
#间隔多久检测一次,单位毫秒;关闭空闲连接,超出时间范围但连接数没有超过最小连接数,会直接关闭连接;默认为30分钟
spring.datasource.time-between-eviction-runs-millis=60000
#连接在池中最小生存的时间
spring.datasource.min-evictable-idle-time-millis=300000
#用来检测连接是否有效的sql
spring.datasource.validation-query=SELECT 1
spring.datasource.test-while-idle=true
spring.datasource.test-on-borrow=false
spring.datasource.test-on-return=false
#打印数据源信息
spring.datasource.filters=stat,wall,log4j
#合并多个DruidDataSource的监控数据
#spring.datasource.use-global-data-source-stat=true
#通过connectProperties属性来打开mergeSql功能;慢SQL记录
spring.datasource.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000

3. 配置Druid监控

application.properties文件中配置Druid监控的访问路径、用户名和密码,例如:

#Druid监控配置
#开启监控界面
spring.datasource.druid.stat-view-servlet.enabled=true
#Druid监控后台的访问路径
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
#Druid监控密码修改界面的访问路径
spring.datasource.druid.web-stat-filter.url-pattern=/druid/security/* 
#禁止页面上的Reset All功能
spring.datasource.druid.stat-view-servlet.allow=127.0.0.1
#Druid监控后台的用户名和密码
spring.datasource.druid.stat-view-servlet.login-username=admin
spring.datasource.druid.stat-view-servlet.login-password=123456

4. 测试Druid数据源

我们可以编写一个简单的Controller测试Druid数据源是否配置完成。

@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private DataSource dataSource;

    @GetMapping("/data")
    public String getData(){
        try {
            Connection conn = dataSource.getConnection();
            return "数据库连接成功!";
        } catch (SQLException e) {
            e.printStackTrace();
            return "数据库连接失败:" + e.getMessage();
        }
    }
}

现在,启动SpringBoot应用程序,访问/test/data路由,如果返回数据库连接成功!字符串,则说明Druid数据源配置成功。

5. 使用Druid连接池

我们可以根据实际应用程序的需求来使用Druid连接池进行连接数据库,例如:

@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    public void addUser(User user){
        jdbcTemplate.update("INSERT INTO user(name,age) VALUE (?,?)", user.getName(), user.getAge());
    }

    public void deleteUserById(Long id){
        jdbcTemplate.update("DELETE FROM user WHERE id=?", id);
    }

    public List<User> getUserList(){
        return jdbcTemplate.query("SELECT * FROM user", new BeanPropertyRowMapper<>(User.class));
    }
}

这里我们使用Spring的JdbcTemplate来操作数据库,并自动获取Druid数据源的连接进行数据库操作。可以根据需要调整参数来控制连接池的行为。

以上就是SpringBoot使用和配置Druid的完整攻略。由于Druid具有强大的监控能力,我们在应用程序中使用它将极大地帮助我们更好地分析和优化应用程序的性能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Spring Boot使用和配置Druid - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • 最详细的Java循环结构解析之for循环教程(适合小白)

    最详细的Java循环结构解析之for循环教程(适合小白)攻略 概述 for 循环是一种经典的循环结构,可以重复执行指定次数的代码块。它适合用于循环执行次数已知的情况下,通过循环体语句来实现重复执行某些操作。 语法 for 循环的语法如下: for (初始化语句; 布尔表达式; 更新语句) { // 执行希望循环的操作 } 其中: 初始化语句 (optiona…

    Java 2023年5月26日
    00
  • 基于json解析神器 jsonpath的使用说明

    下面是基于Json解析神器JsonPath的使用说明的详细攻略。 什么是JsonPath? JsonPath是一个基于Java的Json解析库,它可以用于解析Json数据并提取其中的内容。JsonPath使用类似XPath的查询语法,并支持大部分XPath表达式,同时还有一些自己的表达式。 如何使用JsonPath 步骤一:引入依赖 要使用JsonPath,…

    Java 2023年5月26日
    00
  • Apache Log4j2 报核弹级漏洞快速修复方法

    下面是Apache Log4j2报核弹级漏洞快速修复方法的详细攻略: 概述 Apache Log4j2是一个广泛使用的Java日志框架,近日被爆出一个核弹级的漏洞CVE-2021-44228。攻击者在网络上可以通过构造Payload,远程执行任意代码,进行拦截、篡改和窃取敏感信息等攻击。此次漏洞严重性极高,Apache官方已经发布了修复方案,建议尽快进行修复…

    Java 2023年5月19日
    00
  • SpringBoot实现服务接入nacos注册中心流程详解

    下面是关于“SpringBoot实现服务接入nacos注册中心流程详解”的完整攻略,主要包括以下内容: 1. 什么是nacos? Nacos是阿里巴巴开源的一款服务注册与发现中心,它可以实现动态服务发现、配置管理和服务元数据管理等功能。它还提供了一种简单易用的方式来实现服务注册、服务发现和服务配置等功能,是云原生时代非常重要的组件之一。 2. SpringB…

    Java 2023年6月3日
    00
  • java 如何复制非空对象属性值

    要复制Java对象的非空属性值,可以使用Java自带的BeanUtils.copyProperties方法或Apache Commons BeanUtils框架中的copyProperties方法。 下面分别展示使用这两种方法复制Java对象的非空属性值的示例: 使用Java自带的BeanUtils.copyProperties方法 import org.a…

    Java 2023年5月26日
    00
  • java中申请不定长度数组ArrayList的方法

    下面是详细的Java中申请不定长度数组ArrayList的方法的攻略。 什么是ArrayList ArrayList是Java中常用的一种动态数组,它可以自动扩容,无需手动指定大小。与传统数组相比,ArrayList可以动态添加、删除元素,同时支持快速容器排序等特性,非常方便实用。 如何申请ArrayList 在Java中,我们可以通过以下步骤申请并使用Ar…

    Java 2023年5月26日
    00
  • java servlet过滤器使用示例

    请看下面的详细讲解: Java Servlet 过滤器使用示例 什么是过滤器? 过滤器是用于拦截请求或响应的一种特殊的 Java web 组件,它能够拦截某个请求,进行某些处理(例如:验证、统计等),然后将请求传递给下一个组件或返回响应给客户端。过滤器是一个独立的组件,它可以被任意 web 应用程序重用。 过滤器的工作原理 过滤器在 Servlet 容器中扮…

    Java 2023年5月20日
    00
  • C#中C/S端实现WebService服务

    针对这个问题,我为您详细解析一下C#中C/S端实现WebService服务的完整攻略并提供两个示例。 什么是WebService WebService(Web服务)是一种使用XML协议来进行应用程序之间的交流的服务,通过SOAP(简单对象访问协议)和HTTP(超文本传输协议) 来实现。WebService通常被用于不同平台之间的数据交互,例如Java web…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部