Spring Boot使用和配置Druid

下面是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日

相关文章

  • JSP隐含对象response实现文件下载的两种方法

    以下是JSP中使用response实现文件下载的两种方法的详细攻略: 1. 使用response的setHeader()方法: 1.1 步骤: 在JSP页面中,需要一个超链接或者按钮,通过它来触发文件下载,比如: html <a href=”download.jsp?file=test.txt”>下载文件</a> 在download.…

    Java 2023年6月15日
    00
  • Spring源码解析之编程式事务

    Spring源码解析之编程式事务 什么是编程式事务 编程式事务是通过编写代码来实现事务控制。在编程式事务中,开发者不仅仅需要实现业务逻辑,还需要手动管理事务的开始、提交或回滚。这种方式相对于声明式事务来说,显得更加灵活,但也需要开发者编写更多的代码。 Spring中的编程式事务 Spring框架提供了TransactionTemplate接口和Platfor…

    Java 2023年5月20日
    00
  • 使用jdk7的nio2操作文件拷贝和剪切示例

    我来给您讲解 “使用jdk7的nio2操作文件拷贝和剪切示例” 的完整攻略,具体包含了以下内容: 1. NIO2简介 Java NIO(New I/O)是一个在JDK 1.4中引入的新的IO API,位于java.nio包和java.nio.channels包中,这些新API提供了一系列支持快速IO操作的类和接口,可用于代替标准的Java IO API。 使…

    Java 2023年5月19日
    00
  • springboot 整合 clickhouse的实现示例

    SpringBoot整合ClickHouse的实现示例 ClickHouse是一个高性能的列式数据库,可以用于处理大量数据。本文将详细讲解SpringBoot整合ClickHouse的实现示例的完整攻略,并提供两个示例。 1. 添加ClickHouse依赖 在SpringBoot项目中,我们可以使用ClickHouse JDBC驱动来连接ClickHouse…

    Java 2023年5月15日
    00
  • 5分钟让你快速掌握java8 stream常用开发技巧

    5分钟让你快速掌握java8 stream常用开发技巧 什么是Stream Java 8引入Stream这个API是为了简化集合操作。Stream可以使用filter、map、reduce等方法对集合进行处理。在操作集合时,Stream会把操作分为中间操作和终止操作两种。中间操作用于筛选和转换数据,终止操作用来搜集数据。Stream不改变原来的集合数据,而是…

    Java 2023年5月26日
    00
  • JSP EL表达式详细介绍

    下面我详细讲解一下 “JSP EL表达式详细介绍”的完整攻略。 什么是JSP EL表达式? JSP EL 表达式 (Expression Language) 是一种用于简化 JSP 页面中表达式编写的语言。它引入了一些新的表达式语法和语法规则,以方便 JSP 的编写和开发。 JSP EL表达式有什么特点? JSP EL 表达式有以下几个特点: 简洁:JSP …

    Java 2023年6月15日
    00
  • MySQL特定表全量、增量数据同步到消息队列-解决方案

    下面我会分四个部分详细讲解MySQL特定表全量、增量数据同步到消息队列的解决方案。 1. 数据库准备 首先,我们需要有一个MySQL数据库实例,并在其中创建需要同步的特定表。为了方便演示,这里创建一个test数据库和一张users表: CREATE DATABASE test; USE test; CREATE TABLE `users` ( `id` in…

    Java 2023年5月20日
    00
  • c#使用反射调用类型成员示例

    下面是详细讲解“c#使用反射调用类型成员示例”的完整攻略。 什么是反射 反射是指程序在运行时能够访问、检查和修改它本身状态或行为的一种能力。在C#语言中,使用反射可以探测对象的类型信息、访问和操纵对象的属性和方法,甚至创建对象的实例。 如何使用反射调用类型成员 在C#中进行反射操作之前,需要先获取目标类型的System.Type对象。获取Type对象主要有以…

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