SpringBoot 集成 Druid过程解析

SpringBoot 集成 Druid过程解析

Druid是一个高性能的数据库连接池和监控框架,而SpringBoot是一个轻量级的快速开发框架。在开发 SpringBoot 应用的同时,我们也需要使用数据库连接池来处理数据库访问。

在本文中,我们将详细介绍如何将 Druid 集成到 SpringBoot 项目中。我们将介绍以下内容:

  • 在POM文件中添加Druid的Maven依赖。
  • 在application.properties(或application.yml)文件中设置Druid数据源的相关属性。
  • 在配置类中创建Druid数据源,并引入Druid的监控。
  • 提供两个示例来演示如何使用Druid集成SpringBoot。

添加Druid依赖

首先,我们需要在POM文件中添加Druid的Maven依赖。请添加以下依赖项:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>

配置Druid数据源

接下来,我们需要在application.propertiesapplication.yml文件中设置Druid数据源的相关属性。这里提供一个简单的示例:

spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.druid.initial-size=5
spring.datasource.druid.min-idle=5
spring.datasource.druid.max-active=20
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL
spring.datasource.druid.test-on-borrow=true
spring.datasource.druid.max-wait=60000

spring.datasource.druid.filters=stat,wall,log4j
spring.datasource.druid.connection-properties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000;config.decrypt=false;config.decrypt.key=XXXX

这里需要注意的是,spring.datasource.type属性必须设置为com.alibaba.druid.pool.DruidDataSource,以便告诉SpringBoot使用Druid作为数据源。在细节上,我们也要设定数据源的一些连接信息,如连接数据库的url、用户名、密码、数据库驱动等。

创建Druid数据源

我们可以在SpringBoot的配置类中创建Druid数据源,并引入Druid的监控。这里提供一个示例:

@Configuration
public class DruidConfig {

    @Bean
    @ConfigurationProperties("spring.datasource.druid")
    public DataSource druidDataSource() {
        return new DruidDataSource();
    }

    @Bean
    public ServletRegistrationBean druidServlet() {
        //配置监控统计的路径
        ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
        //白名单
        servletRegistrationBean.addInitParameter("allow", "127.0.0.1");
        //黑名单
        servletRegistrationBean.addInitParameter("deny", "10.0.0.2");
        //控制台管理用户
        servletRegistrationBean.addInitParameter("loginUsername", "admin");
        servletRegistrationBean.addInitParameter("loginPassword", "123456");
        //是否可以重置数据
        servletRegistrationBean.addInitParameter("resetEnable", "false");
        return servletRegistrationBean;
    }

    @Bean
    public FilterRegistrationBean druidFilter() {
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
        //配置过滤器路径
        filterRegistrationBean.addUrlPatterns("/*");
        //忽略过滤格式
        filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
        return filterRegistrationBean;
    }

}

在上面的配置类中,我们使用了一个@ConfigurationProperties注解来注入Druid属性,创建了一个DruidDataSource数据源。同时,我们还使用了@Bean注解来创建监控Servlet和过滤器,这些都来自Druid框架。

在Servlet中,我们使用StatViewServlet类来记录Druid数据源的状态,以便我们可以通过这个Servlet访问Druid的监控。在Filter中,我们使用WebStatFilter类来记录Web资源的访问情况。

使用Druid数据源

现在我们已经完成了Druid和SpringBoot的集成配置。在这里,我们演示一下如何使用Druid数据源访问MySQL数据库。我们编写一个RESTful服务,用来获取和添加用户信息。以下是获取和添加用户信息的示例:

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private JdbcTemplate jdbcTemplate;

    @GetMapping("/")
    public List<Map<String, Object>> getUsers() {
        return jdbcTemplate.queryForList("SELECT * FROM users");
    }

    @PostMapping("/")
    public Map<String, Object> addUser(@RequestBody Map<String, Object> user) {
        String name = (String) user.get("name");
        String email = (String) user.get("email");

        jdbcTemplate.update("INSERT INTO users (name, email) VALUES (?, ?)", name, email);

        Map<String, Object> result = new HashMap<>();
        result.put("name", name);
        result.put("email", email);
        return result;
    }
}

在上面的代码中,我们使用了JdbcTemplate类,它是Spring的核心JDBC模板类,用来处理数据库连接和SQL语句。我们在addUser方法中演示了如何添加用户到数据库中,而getUsers方法用来获取数据库中的所有用户。

测试Druid集成SpringBoot

现在,我们已经完成了Druid的集成配置,可以使用Druid数据源访问MySQL数据库了。我们使用Postman测试上述两个方法。

首先,我们发送一个POST请求到http://localhost:8080/users/,传入以下JSON数据:

{
    "name": "Alice",
    "email": "alice@example.com"
}

如果操作成功,我们将得到以下JSON响应:

{
    "name": "Alice",
    "email": "alice@example.com"
}

接下来,我们发送一个GET请求到http://localhost:8080/users/,将得到以下JSON响应:

[
    {
        "id": 1,
        "name": "Alice",
        "email": "alice@example.com"
    }
]

以上就是使用Druid集成SpringBoot的完整攻略。如果你遇到了问题,请随时在评论区留言,我会尽力回答您的问题。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot 集成 Druid过程解析 - Python技术站

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

相关文章

  • Win10 Build 19044.1379/19043.1379更新补丁KB5007253预览版推送

    Win10 Build 19044.1379/19043.1379更新补丁KB5007253预览版推送攻略 微软推出了Win10 Build 19044.1379/19043.1379更新补丁KB5007253预览版,此更新主要包含安全性修缮与系统漏洞修复。以下是详细攻略。 步骤一:准备工作 在安装更新补丁之前,请确保你操作系统中的所有数据已备份,特别是重要…

    Azure 2023年5月25日
    00
  • Win11 正式版发布,微软宣布 Windows 11 全面上市:PC 新时代从现在开始

    Win11 正式版发布,微软宣布 Windows 11 全面上市 简介 2021年10月5日,微软公司正式宣布Windows 11全面上市,用户可以在Windows Update中进行升级或者在官方网站下载新版的ISO镜像进行安装。Windows 11是一款基于Windows 10的升级版本,它带来了全新的外观和体验,以及更加智能化和个性化的功能。 升级前的…

    Azure 2023年5月25日
    00
  • 小谈angular ng deploy的实现

    下面是小谈 Angular ng deploy 的实现攻略: Angular ng deploy是什么? Angular ng deploy是Angular CLI(命令行界面)的一个命令,用于将一个Angular项目打包并部署到一个特定的目标。在使用Angular ng deploy命令前,需要先设置部署目标信息,然后Angular会帮助我们打包项目并上传…

    Azure 2023年5月26日
    00
  • visual studio 2015 企业版 序列号及官方下载地址

    Visual Studio 2015 企业版序列号及官方下载地址 Visual Studio 2015 是一款功能强大、广泛应用的 IDE 工具,能够集成多种语言,支持跨平台开发。本文主要介绍 Visual Studio 2015 企业版的序列号和官方下载地址。 1. 官方下载地址 首先,您需要进入 Visual Studio 2015 官方下载页面:htt…

    Azure 2023年5月25日
    00
  • 手把手教你做超酷的条形码效果

    手把手教你做超酷的条形码效果 在本文中,我们将介绍如何使用HTML/CSS和JavaScript创建超酷的条形码效果。这个效果不仅可以增加网站的交互性,而且还可以吸引用户的注意力。本文将一步步介绍如何制作这个效果。 1. 准备工作 在开始之前,我们需要准备一些文件和工具: 一个HTML文件用于放置条形码效果和相关代码; 一个CSS文件用于设置样式; 一个Ja…

    Azure 2023年5月25日
    00
  • 最新MountainDuck激活教程分享 附激活补丁

    最新MountainDuck激活教程分享 附激活补丁攻略 MountainDuck是一款非常好用的云存储服务的客户端,不过正版的软件是需要付费的,有些用户会因此选择使用盗版软件,但这是违法的。因此,我们提供最新的MountainDuck激活教程,帮助用户正确合法地激活软件。 下载安装MountainDuck软件 首先,访问MountainDuck官网http…

    Azure 2023年5月25日
    00
  • Win10多个版本版本business editions和consumer editions的区别

    Win10多个版本版本business editions和consumer editions的区别 Win10有多个不同的版本,其中有两类主要版本,即business editions和consumer editions。这两种版本之间有以下区别: Business Editions Business Editions是专门为企业和商业用户设计的Win10版…

    Azure 2023年5月25日
    00
  • 最新2021win10企业版激活秘钥推荐 附激活工具+教程

    最新2021win10企业版激活秘钥推荐 附激活工具+教程 本文将介绍Win10企业版激活的一个合法方法,并提供激活工具及详细的操作步骤。 准备工作 在开始操作之前,请先准备以下内容: 一台未激活的Win10企业版电脑 下载并安装ActivationToolkit软件 操作步骤 第一步:备份证书 打开计算机,找到“此电脑”中的“C:\Windows\Syst…

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