SpringBoot 集成 Druid过程解析

yizhihongxing

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日

相关文章

  • ABP基础架构深入探索

    ABP基础架构深入探索攻略 ABP(Asp.Net Boilerplate)是一个基于ASP.NET Core的开源应用程序框架。 简介 为了实现跨平台开发,ABP采用了单体应用结构,将整个应用平台看作是一个大型的应用,将各个子系统与模块看作具备可独立可集成能力的组件,协同工作构建起整个应用生态架构。 ABP框架将应用程序分为四层:演示层(Presentat…

    Azure 2023年5月25日
    00
  • Discuz!论坛个性签名代码全集大汇总

    Discuz!论坛个性签名代码全集大汇总 在Discuz!论坛中,个性签名是一个很重要的组成部分,可以展示用户的个性和兴趣爱好。为了让用户有更多的选择,我们整理了一份“Discuz!论坛个性签名代码全集大汇总”的攻略,其中包含了许多可以让用户使用的个性签名代码。 表情代码 在个性签名中添加表情可以让签名更加生动有趣。 小黄瓜:[s:7] 大笑:[s:15] …

    Azure 2023年5月25日
    00
  • IDEA 中使用 Big Data Tools 连接大数据组件

    下面是“IDEA 中使用 Big Data Tools 连接大数据组件”的完整攻略: 步骤一:安装 Big Data Tools 插件 首先需要在 IntelliJ IDEA 中安装 Big Data Tools 插件。在 IntelliJ IDEA 官方插件市场中搜索 Big Data Tools 插件并安装,或者在 IntelliJ IDEA 中点击 P…

    Azure 2023年5月26日
    00
  • Windows10 21H1最新激活码/秘钥推荐 附激活工具+教程

    首先,作为一名合法的软件使用者,我们应该遵守法律法规,合法使用软件,不得盗版,不得破解。因此,在此提醒广大用户,务必使用正版软件。 其次,如果你已经拥有了Windows 10 21H1正版授权,那么你无需再寻找激活码或秘钥。但如果你没有授权,可以通过以下步骤来激活Windows 10 21H1: 下载Windows 10 21H1镜像文件并安装。官方下载链接…

    Azure 2023年5月26日
    00
  • LuManager图文安装使用教程和创建MysqL快速建站基本教程

    LuManager图文安装使用教程 概述 LuManager是基于PHP和MySQL的开源CMS(Content Management System)。它具有安全、稳定、易用的特点,可以用于各种网站建设需求,包括企业官网、电商平台等等。 环境要求 PHP版本:5.6及以上(推荐PHP7.0+) MySQL版本:5.1及以上 支持rewrite模块的Apach…

    Azure 2023年5月25日
    00
  • Win10 21H2 Build 19044.1741(KB5014023)发布预览版更新

    Win10 21H2 Build 19044.1741(KB5014023)发布预览版更新攻略 1. 了解 Win10 21H2 Build 19044.1741(KB5014023)更新 Win10 21H2 Build 19044.1741(KB5014023)是微软针对Windows10系统发布的一次预览版更新,带来了一些新功能、修复了一些已知问题以及…

    Azure 2023年5月26日
    00
  • 2021最新Windows1021H1企业版iOS镜像激活密钥/激活码推荐

    作为一个网站的作者,我必须强调,在任何情况下,盗版软件和激活码都是不合法的,将使用它们的用户面临法律风险和安全风险。因此,我无法提供任何关于使用盗版或激活码的建议。 另外,所谓的“2021最新Windows1021H1企业版iOS镜像激活密钥/激活码推荐”并不存在。Windows 10 Enterprise Edition是面向企业用户的操作系统版本,需要按…

    Azure 2023年5月25日
    00
  • 怎么激活Windows10 Win10激活密钥分享 附激活工具

    怎么激活Windows10 Win10激活密钥分享 附激活工具 前言 Windows10激活是许多用户在安装后需要处理的事情。针对这种情况,本文将详细介绍如何激活Windows10并提供激活密钥分享及激活工具下载。 准备工作 在正式操作之前,请确保你已经准备好以下材料: 可用的Windows10系统镜像文件 Windows10激活密钥(可从网络上获得) 激活…

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