当前位置: 首页 > news >正文

spring如何整合druid连接池?

spring整合druid连接池

 1.新建maven项目

  1. 打开IDE(比如IntelliJ IDEA, Eclipse等)。
  2. 选择新建项目
    1. 在IntelliJ IDEA中,选择File > New > Project
    2. 在Eclipse中,选择File > New > Maven Project
  3. 选择Maven项目模板
    1. 在IntelliJ IDEA中,选择Archetype选项卡,并搜索或选择一个适合Web应用的模板,如maven-archetype-webapp
    2. 在Eclipse中,勾选Create a simple project,然后选择一个合适的模板。
  4. 填写项目信息
    1. 组织ID (groupId):通常是逆域名形式,如com.example
    2. 艺术品ID (artifactId):项目的名称。
    3. 版本 (version):初始版本号,如1.0-SNAPSHOT
    4. 包装 (packaging):对于Web应用程序,可以选择war;对于普通Java应用程序,可以选择jar
  5. 完成创建:点击完成按钮,IDE将下载所需的依赖并创建项目。

2.新建mavenModule

  1. 打开现有的Maven项目
  2. 添加新模块
    1. 在IntelliJ IDEA中,右键点击项目的根目录 -> New > Module... -> 选择Maven Module
    2. 在Eclipse中,右键点击项目的src/main/java目录 -> New > Other... -> 选择Maven类别下的Module
  3. 填写模块信息
    1. 组织ID (groupId):与主项目相同。
    2. 艺术品ID (artifactId):模块的名称。
    3. 版本 (version):与主项目相同。
    4. 包装 (packaging):根据模块的功能选择warjarpom
  4. 完成创建:点击完成按钮,IDE将创建新的模块。

3.导入相关依赖

        首先,你需要添加Druid连接池的依赖。Druid是由阿里巴巴开发的一个高性能、功能丰富的Java数据库连接池组件。在pom.xml文件中添加如下依赖:

  <dependencies>

        <!--导入spring-context依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.1.12</version>

        </dependency>
        <!--导入测试依赖-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <!--导入日志框架-->

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.23.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <version>2.23.1</version>
        </dependency>

        <!--整合数据库-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.33</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.7</version>
        </dependency>

    </dependencies>

注:需要刷新一下maven

4.配置log4j2.xml

        配置log4j2.xml文件是为了能够控制日志输出的格式、级别、目标等。Log4j2是一个强大的日志框架,提供了丰富的特性来帮助开发者更好地管理和调试日志信息。下面是一个基本的log4j2.xml配置示例,用于设置日志的输出到控制台和文件。

在resource文件夹下配置log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"><Appenders><!--配置控制台输出日志--><Console name="Console" target="SYSTEM_OUT"><!--日志的输出格式--><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console><!--配置文件输出日志--><File name="File" fileName="d:logs/app.log"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></File></Appenders><Loggers><!--日志级别为debug--><Root level="debug"><AppenderRef ref="Console"/><AppenderRef ref="File"/></Root></Loggers>
</Configuration>

5.配置druid.xml

1)xml中如何引入properties

<beans>标签中加入

xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/context         http://www.springframework.org/schema/context/spring-context.xsd"

注:上述是为了引入外部文件,需要做的准备工作

2)下面是配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 这个相当于导入外部配置文件--> <context:property-placeholder location="classpath:jdbc.properties"/></beans>
 

6.准备jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
jdbc.username=root
jdbc.password=root
JDBC 配置项解释
  1. jdbc.driver: 这个配置指定了用于连接数据库的 JDBC 驱动类名称。在这个例子中,com.mysql.jdbc.Driver 指的是 MySQL 的 JDBC 驱动(也称为 MySQL Connector/J)。需要注意的是,如果你正在使用的是 MySQL Connector/J 8.x 或更高版本,正确的驱动类名应该是 com.mysql.cj.jdbc.Driver

  2. jdbc.url: 这个配置提供了连接到数据库的具体 URL 地址。在给定的例子中:

    1. jdbc:mysql://localhost:3306/ 表示连接到本地主机上运行的 MySQL 数据库实例,端口号为 3306。
    2. test 是要连接的数据库名称。
    3. ?useUnicode=true&characterEncoding=UTF-8 是附加的查询字符串参数,用来指定客户端与数据库之间的字符编码为 UTF-8。
  3. jdbc.username: 这是用于登录数据库的用户名。在这里,用户名为 root

  4. jdbc.password: 这是与用户名对应的密码。这里的密码是 root

7.配置druid

<context:property-placeholder location="classpath:jdbc.properties"/><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"init-method="init" destroy-method="close"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>

详细解释如下

<context:property-placeholder location="classpath:jdbc.properties"/>
这一行的作用是在 Spring 应用上下文中定义一个属性占位符处理器,该处理器会从类路径下的 jdbc.properties 文件中加载属性值。这样,可以在 XML 配置文件中使用 ${属性名} 的形式引用这些属性值。

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
这一行定义了一个名为 dataSource 的 Bean,其类型为 DruidDataSource。DruidDataSource 是阿里巴巴开源的一个高性能的 Java 数据库连接池组件。init-method="init" 和 destroy-method="close" 分别指定了在 Bean 初始化和销毁时调用的方法。

init-method="init": 当 Spring 容器创建这个 Bean 时,会在构造方法执行后调用 init 方法。
destroy-method="close": 当 Spring 容器销毁这个 Bean 时,会调用 close 方法来释放资源。


<property name="driverClassName" value="${jdbc.driver}"/>
这一行设置了 DruidDataSource 的 driverClassName 属性,该属性指定了 JDBC 驱动的类名。这里的值通过 ${jdbc.driver} 引用了 jdbc.properties 文件中的 jdbc.driver 属性值。

<property name="url" value="${jdbc.url}"/>
这一行设置了 DruidDataSource 的 url 属性,该属性指定了数据库连接的 URL。同样地,这里通过 ${jdbc.url} 引用了 jdbc.properties 文件中的 jdbc.url 属性值。

<property name="username" value="${jdbc.username}"/>
这一行设置了 DruidDataSource 的 username 属性,该属性指定了数据库连接的用户名。通过 ${jdbc.username} 引用了 jdbc.properties 文件中的 jdbc.username 属性值。

<property name="password" value="${jdbc.password}"/>
这一行设置了 DruidDataSource 的 password 属性,该属性指定了数据库连接的密码。通过 ${jdbc.password} 引用了 jdbc.properties 文件中的 jdbc.password 属性值。

8.测试

import com.alibaba.druid.pool.DruidDataSource;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class DruidTest {

    @Test
    public void test() {

        /**
         * 加载指定配置
         */
        ApplicationContext context = new ClassPathXmlApplicationContext("druid.xml");

        //获取druid
        DruidDataSource dataSource = context.getBean(DruidDataSource.class);

        System.out.println(dataSource);

        System.out.println(dataSource.getUrl());
        System.out.println(dataSource.getUsername());
        System.out.println(dataSource.getPassword());
        System.out.println(dataSource.getDriverClassName());
    }
}
 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 大模型LLM部署学习
  • [数据集][目标检测]乱堆物料检测数据集VOC+YOLO格式1143张1类别
  • 网络安全工程师能赚多少钱一个月?
  • 构建常态化安全防线:XDR的态势感知与自动化响应机制
  • html css网页制作
  • 【failed with MalformedInputException: Input length = 1 -> 修复解决方案】
  • 写在OceanBase开源三周年
  • RasberryPi 3B树莓派基本配置
  • 新颖的团建分组方式
  • 利用Python实现希尔伯特变换取包络 - 理论及实践
  • java语言发展史
  • DDS基本原理--FPGA学习笔记
  • RUST 学习之全局变量
  • Frida0D - hook JNIEnv 相关函数
  • gradle 学习备忘
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 0基础学习移动端适配
  • Angular 响应式表单 基础例子
  • JavaScript设计模式之工厂模式
  • Java的Interrupt与线程中断
  • MobX
  • PHP变量
  • PHP的Ev教程三(Periodic watcher)
  • python学习笔记 - ThreadLocal
  • text-decoration与color属性
  • 从0到1:PostCSS 插件开发最佳实践
  • 驱动程序原理
  • 写代码的正确姿势
  • 找一份好的前端工作,起点很重要
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 昨天1024程序员节,我故意写了个死循环~
  • ​低代码平台的核心价值与优势
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • ‌分布式计算技术与复杂算法优化:‌现代数据处理的基石
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (+4)2.2UML建模图
  • (1)svelte 教程:hello world
  • (C11) 泛型表达式
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (阿里云万网)-域名注册购买实名流程
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (源码分析)springsecurity认证授权
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)iOS字体
  • (转)linux自定义开机启动服务和chkconfig使用方法
  • (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案一
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .gitignore
  • .NET 5.0正式发布,有什么功能特性(翻译)